में डायनामिक चॉइस फील्ड का उपयोग करना मेरे पास कुछ विकल्प के साथ एक चयन फ़ील्ड बनाने के लिए choiceField
है। कुछ इस तरह:Django
forms.py
class NewForm(forms.Form):
title = forms.CharField(max_length=69)
parent = forms.ChoiceField(choices = CHOICE)
लेकिन मैं एक पूर्वनिर्धारित टपल (जो ChoiceField
के लिए आवश्यक है) बिना विकल्प बनाने में सक्षम होना चाहता हूँ। असल में, मुझे प्रत्येक उपयोगकर्ता के अनुसार कुछ विकल्प टैग भरने के लिए request.user तक पहुंच की आवश्यकता है, लेकिन मुझे नहीं पता कि फॉर्मों के वर्गों में अनुरोध का उपयोग करने का कोई तरीका है या नहीं।
एक वैकल्पिक माध्यम NewForm
के कहने prepopulate करने के लिए होगा:
views.py
form = NewForm(initial={'choices': my_actual_choices})
लेकिन मैं बनाने के लिए NewForm और my_actual_choices वैसे भी काम करने के लिए प्रतीत नहीं होता है एक डमी की पसंद में जोड़ने के लिए।
मुझे लगता है कि इसे हल करने का तीसरा तरीका ChoiceField का उप-वर्ग बनाना है और save()
को फिर से परिभाषित करना है, लेकिन मुझे यकीन नहीं है कि यह करने के बारे में कैसे जाना है।
हां, यह काम करता है। धन्यवाद –
'सुपर() 'पहले आना चाहिए। – Surya
जब मैं निर्माता से पहले 'सुपर()' देखा तो मैं उलझन में था, लेकिन जब मैंने कोशिश की, मुझे एक त्रुटि मिली: नाम 'स्वयं' परिभाषित नहीं किया गया है। 'सुपर()' कन्स्ट्रक्टर में होना चाहिए। संपादन इतिहास को देखते हुए, मुझे लगता है कि सूर्य का अर्थ क्या है, क्योंकि 'सुपर() 'मूल रूप से निर्माता में अंतिम पंक्ति थी। – user2233706