[django] django 양식 필드에서 기본적으로 빈 쿼리 세트 만들기

이 필드의 형태는 다음과 같습니다.

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()형태가 매우 무거운 것입니다. 쿼리 셋을 기본적으로 비우려면 어떻게해야합니까?



답변

다음을 수행하여 빈 쿼리 집합을 가질 수 있습니다.

MyModel.objects.none()

이 양식을 어떻게 사용할지 모르겠지만 필요한 것을 얻기 위해 필드의 쿼리 세트로 넣을 수 있습니다 …

자세한 내용은 여기를 참조 하십시오


답변

@radtek의 의견 은 비슷한 시나리오에서 유용하지만 허용되는 답변과 다른 접근 방식으로 대답해야합니다.

조회수가 URL의 뷰에서 변경되는 경우

내가 사용한 것처럼 예제로 답변을 확장하고 있습니다.

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


답변