मुझे ModelChoiceField के विकल्पों में शीर्षक विशेषता जोड़नी है।django में विकल्प टैग में विशेषताओं को जोड़ने के लिए कैसे?
class LocModelForm(forms.ModelForm):
def __init__(self,*args,**kwargs):
super(LocModelForm,self).__init__(*args,**kwargs)
self.fields['icons'] = forms.ModelChoiceField(queryset = Photo.objects.filter(galleries__title_slug = "markers"))
self.fields['icons'].widget.attrs['class'] = 'mydds'
class Meta:
model = Loc
widgets = {
'icons' : forms.Select(attrs={'id':'mydds'}),
}
class Media:
css = {
"all":("/media/css/dd.css",)
}
js=(
'/media/js/dd.js',
)
class LocAdmin(admin.ModelAdmin):
form = LocModelForm
मैं विजेट का चयन करने के लिए किसी भी विशेषता जोड़ सकते हैं, लेकिन मैं विकल्प टैग विशेषताएं जोड़ने का तरीका पता नहीं कैसे: यहाँ है कि के लिए अपने व्यवस्थापक कोड है। कोई उपाय ?
क्या कोई विशेष कारण है कि '__init__' विधि के बजाय' मेटा 'आंतरिक वर्ग में फ़ील्ड को संशोधित किया जाना चाहिए? और क्या एक ही तर्क एक क्षेत्र के लिए विजेट विशेषताओं को संशोधित/जोड़ने के लिए लागू होगा? – hellsgate
@hellsgate ज्यादातर मामलों में, 'widget.attrs' सेट करने के लिए' __init__' को ओवरराइड नहीं करने का कोई कारण नहीं है। उपयोग-मामलों के बहुमत में, जैसे अन्यथा डिफ़ॉल्ट विजेट पर एचटीएमएल विशेषताओं को संशोधित करना * नहीं * '__init__' ओवरराइड के माध्यम से ऐसा करना DRY का उल्लंघन करता है। दुर्भाग्यवश ओपी के मामले के लिए, उसे एक विजेट विजेट को परिभाषित करना होगा क्योंकि '
इस दृष्टिकोण का उपयोग 'SelectMultiple' विजेट को बढ़ाने के लिए भी किया जा सकता है। बस 'selectMultiple' subclass और इसे कस्टम' MySelect' विजेट पास करें। – NickBraunagel