nuk*_*ukl 2 python django django-admin
我的项目中有典型的模型继承:
class A(models.Model):
boolean_field = models.BooleanField(default=True)
class B(A):
some_other_field = models.CharField()
Run Code Online (Sandbox Code Playgroud)
我想覆盖boolean_field类中的默认值,B我该怎么办?
我认为在数据库层上做这件事可能很棘手,所以至少我可以简单地覆盖Django admin中的默认值(我的意思是在ModelAdmin类的表单中B).
正如您所建议的那样,我认为最简单的方法是B在django admin中更改用于模型的模型形式.
要更改表单字段的初始值,您可以重新定义字段,也可以覆盖该__init__方法.
class BForm(forms.ModelForm):
# either redefine the boolean field
boolean_field = models.BooleanField(initial=False)
class Meta:
model = B
# or override the __init__ method and set initial=False
# this is a bit more complicated but less repetitive
def __init__(self, *args, **kwargs):
super(BForm, self).__init__(*args, **kwargs)
self.fields['boolean_field'].initial = False
Run Code Online (Sandbox Code Playgroud)
在django admin中使用您的自定义模型表单很简单!
class BAdmin(admin.ModelAdmin):
form = BForm
admin.site.register(B, BAdmin)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2605 次 |
| 最近记录: |