gpt4 book ai didi

inheritance - 如何更改 Django 模型子类中的字段参数?

转载 作者:行者123 更新时间:2023-12-03 09:32:50 25 4
gpt4 key购买 nike

假设我有一些 Django 模型,它是一个抽象基类:

class Foo(models.Model):
value=models.IntegerField()

class Meta:
abstract = True

它有两个派生类,我希望每个子类的字段默认值都不同。我不能简单地覆盖该字段
class Bar(Foo):
value=models.IntegerField(default=9)

因为 Django 不会让你覆盖子类中的字段。我看过有关尝试更改可用选项的帖子,但在这种情况下,我最关心的是更改默认值。有什么建议吗?

最佳答案

按照另一个答案中的建议重新定义 save 方法的问题是,在您保存模型对象之前,不会设置您的值。
另一个没有这个问题的选项是重新定义 __init__在子类(Bar 类)中:

def __init__(self, *args, **kwargs):
if 'value' not in kwargs:
kwargs['value'] = 9
super(Bar, self).__init__(*args, **kwargs)

关于inheritance - 如何更改 Django 模型子类中的字段参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7884757/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com