জ্যাঙ্গো ফর্ম ক্ষেত্রে ডিফল্টরূপে খালি ক্যোরিসেট তৈরি করুন


169

আমার এই ক্ষেত্রগুলি আকারে রয়েছে:

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()ফর্মটি খুব ভারী হবে। আমি কীভাবে ডিফল্টরূপে খালি জিজ্ঞাসা করতে পারি?


আমার প্রস্তাবিত সম্পাদনা পোস্টের উন্নতি করে। সাধারণভাবে, কোনও পোস্ট "থ্যাঙ্কস" দিয়ে শেষ করা উচিত নয়। এটি ব্যক্তিগত নয়, কুঁড়ি meta.stackexchange.com/questions/17878/…
টেলরিয়ান

উত্তর:


422

এটি করে আপনার একটি খালি ক্যোরিসেট থাকতে পারে:

MyModel.objects.none()

আপনি কীভাবে এই ফর্মটি ব্যবহার করতে যাচ্ছেন তা আমি জানি না, আপনি যা প্রয়োজন তা পাওয়ার জন্য আপনি এটি আপনার ক্ষেত্রের ক্যোয়ারেট হিসাবে রাখতে পারেন ...

আপনি এখানে আরও তথ্য পেতে পারেন


4
ইউআরএল প্যারামিটারের উপর ভিত্তি করে আপনার ক্যোয়ারসেটটি আপনার ভিউতে পরিবর্তিত হয় এমন ব্যবহারের ক্ষেত্রে। Edit_form.fields [ "সম্পদ"] queryset = Asset.objects.filter (location_id = location_id): তারপর আপনার দৃশ্য তোমার মত এত সঠিক queryset সেট।
radtek

আমার যদি কোনও মডেল না থাকে তবে আমি কেবল একটি করছি values_list('something', flat=True)?
বরিস

2

@ রাডটেকের মন্তব্যটির একটি উত্তর হওয়া উচিত কারণ এটি অনুরূপ পরিস্থিতিতে কার্যকর তবে গ্রহণযোগ্য উত্তরের চেয়ে ভিন্ন পদ্ধতির সাথে।

যদি আপনার ক্যোরিসেটটি আপনার ভিউর সাথে URL এর সাথে পরিবর্তিত হয়।

আমি উত্তর হিসাবে উদাহরণ হিসাবে আমি ব্যবহার প্রসারিত করছি:

def my_view(request):
    ...
    form = YourForm(initial={'field1':value1, 'field2':value2})
    form.fields['field3'].queryset = YourModel.objects.filter('foo'=bar)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.