私はプロジェクトをphpからDjangoに変換しており、フィルタリングされたメニューの問題にぶつかりました。私は、フォームを持っている:今、私はisland_group
の選択に応じてisland_name
の出力をフィルタリングするdjango動的フィルタフォーム
<form action="{% url cdrs_search %}" method="post">{% csrf_token %}
{% for field in form %}
<div class="fieldWrapper">
{{ field.errors }}
{{ field.label_tag }}: {{ field }}
</div>
{% endfor %}
</form>
:
class SearchForm(forms.Form):
genus = forms.CharField(max_length=100)
# species
species = forms.CharField(max_length=100)
# island group
island_group = forms.ModelChoiceField(queryset=Localitymayor.objects.values_list('islandgroup', flat=True).distinct('islandgroup').exclude(islandgroup="n/a").order_by('islandgroup'), empty_label=_("Not Specified"))
# island name
island_name = forms.ModelChoiceField(queryset=Localitymayor.objects.values_list('islandname', flat=True).distinct('islandname').exclude(islandname="n/a").order_by('islandname'), empty_label=_("Not Specified"))
私のテンプレートの線に沿っています。私のPHPプロジェクトでは、別のPHPスクリプトを呼び出してajax onChangeを使ってこれを管理しました。しかし、私はDjangoでこれを行う方法が少し失われています。 Djangoで初めてAjaxを使って作業するので、この単純で共通のフィルタリングされたメニューの問題に対処するベストプラクティスの方法については、何かアドバイスをいただければ幸いです。前もって感謝します。
なぜDjangoでそれが違うのですか?サーバー側のビューを呼び出すAjax onChange関数が必要です。 –