django-forms choice - django 양식 필드에 기본적으로 빈 쿼리 세트를 작성하십시오.




field (3)

이 필드는 다음과 같은 형식으로되어 있습니다.

city = forms.ModelChoiceField(label="city", queryset=MyCity.objects.all())
district = forms.ModelChoiceField(label="district", queryset=MyDistrict.objects.all())
area = forms.ModelChoiceField(label="area", queryset=MyArea.objects.all())

지역은 도시를 클릭하면 나오며 지역은 지역을 클릭하면옵니다. queryset=MyDistrict.objects.all()queryset=MyArea.objects.all() 양식은 매우 무겁습니다. 쿼리 세트를 기본적으로 비워 둘 수있는 방법은 무엇입니까?

미리 감사드립니다.


Answers

@ radtek의 comment 은 유사한 시나리오에서 유용하지만 수용된 답변과는 다른 접근 방식으로 유용하므로 대답해야합니다.

당신의 전망에있는 url를 가진 당신의 queryset가 변화하는 경우에.

내가 사용한 예제를 사용하여 대답을 확장하고있다.

def my_view(request):
    ...
    form = YourForm(initial={'field1':value1, 'field2':value2})
    form.fields['field3'].queryset = YourModel.objects.filter('foo'=bar)

다음과 같이 빈 쿼리 세트를 만들 수 있습니다.

MyModel.objects.none()

그 양식을 어떻게 사용할지 모르겠지만, 그걸 당신이 필요로하는 것을 얻기 위해 당신의 현장의 쿼리 세트로 넣을 수 있습니다.

here 자세한 정보를 찾을 수 있습니다.


검색을 위해서는 Haystack 과 같은 전용 솔루션을 사용하는 것이 좋습니다. 매우 유연합니다.







django django-forms