Özel bir Etiket Biçimi form alanına sahibim.Django Yöneticisi - Özel form alanının pencere aracını geçersiz kılma
class TagField(forms.CharField):
def __init__(self, *args, **kwargs):
super(TagField, self).__init__(*args, **kwargs)
self.widget = forms.TextInput(attrs={'class':'tag_field'})
Yukarıda görüldüğü gibi, bir TextInput form alanı widget'ını kullanır. Ama yönetici olarak Textarea widget'ı kullanılarak görüntülenmesini istiyorum. Bunun için formfield_overrides
kanca var ama bu durum için çalışmaz.
yönetici beyanıdır:
class ProductAdmin(admin.ModelAdmin):
...
formfield_overrides = {
TagField: {'widget': admin.widgets.AdminTextareaWidget},
}
Bu form alanı widget'ı üzerinde hiçbir etkisi yoktur ve tags
hala TextInput widget'la oluşturulur.
Herhangi bir yardım çok takdir edilmektedir.
-
OMAT
Bu benim için çalışmadı, sınıftan ziyade bir widget örneğini geçirmeniz gerekiyor. Örnek, yine de mükemmel çalıştı. –
Genellikle admin.py'de özel yönetim formları oluşturabilir ve bunları forms.py ile karıştırmam. Bu, diğer geliştiriciler için herhangi bir karışımı azaltır ve aynı .py dosyasında tüm yönetici belirli öğeleri tutar. – MaestroFJP
İyi nokta @MaestroFJP. Sadece yeni kodumda bunu yapıyorum. Veya, gerçekten karmaşık formlarınız varsa ve bunların birçoğu varsa,/admin.py formlarının bir alt modülüne sahip olun. –