Zxa*_*aos 15 inheritance django-models default-value
假设我有一些抽象基类的Django模型:
class Foo(models.Model):
value=models.IntegerField()
class Meta:
abstract = True
Run Code Online (Sandbox Code Playgroud)
它有两个派生类,我希望每个子类的字段默认值不同.我不能简单地覆盖该字段
class Bar(Foo):
value=models.IntegerField(default=9)
Run Code Online (Sandbox Code Playgroud)
因为Django不会让你覆盖子类中的字段.我看过有关尝试更改可用选项的帖子,但在这种情况下,我主要关心的是更改默认值.有什么建议?
另一个答案中建议的重新定义save方法的问题是,在保存模型对象之前,不会设置您的值.另一个没有这个问题的选项是重新定义__init__
子类(Bar类):
def __init__(self, *args, **kwargs):
if 'value' not in kwargs:
kwargs['value'] = 9
super(Bar, self).__init__(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
3722 次 |
最近记录: |