【发布时间】:2011-07-22 09:39:17
【问题描述】:
我希望能够在运行时向 django 管理表单添加字段。我的模型和形式:
#admin.py
class SitesForm(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(SitesForm, self).__init__(*args, **kwargs)
self.fields['mynewfield'] = forms.CharField()
class SitesAdmin(admin.ModelAdmin):
form = SitesForm
admin.site.register(Sites,SitesAdmin)
#model.py
class Sites(models.Model):
url = models.URLField(u'URL')
is_active = models.BooleanField(default=True, blank=True)
is_new = models.BooleanField(default=False, blank=True)
group = models.ForeignKey('SitesGroup')
config = models.TextField(blank=True)
字段mynewfield 不显示在表单中。为什么?
【问题讨论】:
-
我只需要使用__init____
-
您应该在 forms.CharField() 中提供 max_length,它可能会静默失败并在 ModelAdmin 中提供:class Meta: model = Sites
标签: django django-models django-admin field