2012-08-13 14 views
10

मुझे डेटाबेस में मानों की एक ड्रॉप डाउन सूची बनाने के लिए ChoiceField का उपयोग करने में समस्याएं आ रही हैं। यहाँ कोडDjango ChoiceField डेटाबेस मानों से आबादी

from django import forms 
from testplatform.models import ServiceOffering 

class ContactForm(forms.Form): 

    subject = forms.ChoiceField(queryset=ServiceOffering.objects.all()) 
    #subject = forms.ModelMultipleChoiceField(queryset=ServiceOffering.objects.all()) 

#subject .... सीमा के कार्य का टुकड़ा है, लेकिन जब मैं लाइन ChoiceField (क्वेरीसमूह ....) मैं निम्नलिखित त्रुटि मिलती है का उपयोग करें।

__init__() got an unexpected keyword argument 'queryset' 

कोई विचार?

उत्तर

24

ChoiceField में कोई प्रश्न नहीं है। आप ModelChoiceFieldLink Here

ChoiceField का प्रयोग करें क्वेरीसमूह का समर्थन नहीं करता

+0

उत्कृष्ट में संसाधित करने की जरूरत पर निर्भर करता है। मुझे ड्रॉप डाउन बॉक्स में डिफ़ॉल्ट मान के रूप में एक ------ मिलता है। क्या मैं उसे बदल सकता हूँ? धन्यवाद! – Oli

+1

यदि फ़ील्ड वैकल्पिक है तो इस तरह से दिखाता है, इसे हटाने के लिए फ़ील्ड को 'आवश्यक = True' पर सेट करें। –

3

लिए देख रहे हैं Views.py से आपके टेम्पलेट में एकल ऑब्जेक्ट में मान। 1] डेटाबेस से सभी मूल्यों लाने:: आप इसे इस तरह से कर सकते हैं

objectlist = ModelName.objects.all() 

अगर आप ड्रॉपडाउन सूची में क्रमबद्ध सूची चाहते हैं, यह करें:

objectlist = ModelName.objects.all().order_by('fieldname') 

अगर आप distinctlist चाहते हैं, यह करने के :

objectlist = ModelName.objects.distinct('fieldname') 

2] दर्रा इस प्रस्तुत करना इस टेम्पलेट के साथ 'objectlist'

return render(request, 'template.html', {'objectlist': objectlist}) 

3] टेम्पलेट में एक चयन टैग का उपयोग करें, और उपयोगकर्ता में ऑब्जेक्टलिस्ट पर फिर से चलाने के लिए लूप के लिए। कि एक का इलाज काम किया - विकल्प टैग में

<select> 


{% for element in objectlist %} 


<option value={{ element.id }}>{{ element.name }} 



    </select> 

मूल्य तुम क्या अपने एपीआई

+0

गंभीरता से? क्या यह वास्तव में एक लिंक और मामूली प्रारूप परिवर्तन के साथ मेरे जवाब को दोबारा पोस्ट करना आवश्यक था? –

+0

क्षमा करें, मैंने उत्तर विंडो खोला है और उस लिंक के लिए चला गया है। एक बार जब मैं वापस आउंगा तो आपने इसे पहले ही पोस्ट कर दिया है। एक बार फिर माफ करना। मुझे नहीं पता कि मेरे उत्तर को स्पष्ट रूप से कैसे हटाया जाए –

+0

धन्यवाद - समझ गया .. मुझे लगता है कि मैं प्रारंभिक मूल्य का उपयोग कर सकता हूं इसलिए मुझे दिखाई नहीं देता है ------ दिखाई देते हैं? – Oli

5

यदि आप डेटाबेस से ड्रॉपडाउन सूची को भरने के लिए चाहते हैं, मैं सभी पारित करने के लिए आप का सुझाव देंगे ModelChoiceField