在Django视图中将对象的参数设置为其默认值

2024-04-26 18:25:14 发布

您现在位置:Python中文网/ 问答频道 /正文

在Django模型中,我将默认字段设置为字段

例如

Class Foo(models.Model):
    xyz = models.IntegerField(default=122)

现在,当我在某些视图中使用它时,如何在使用后将其设置为默认值? 我知道我能做到:

a = Foo.objects.get(...)
a.xyz = 122

但是有没有更好的方法,使我不必在Views中重新写入默认值


1条回答
网友
1楼 · 发布于 2024-04-26 18:25:14

Django docs

The default value is used when new model instances are created and a value isn’t provided for the field. When the field is a primary key, the default is also used when the field is set to None.

因此,不能直接将现有实例的字段设置为其默认值。但你可能会发现一个窍门:

FOO_XYZ_DEFAULT = 122

class Foo(models.Model):

    xyz = models.IntegerField(default=FOO_XYZ_DEFAULT)

# [...]

a = Foo.objects.get(...)
a.xyz = FOO_XYZ_DEFAULT

如果默认值是可调用的(lambda、function等),您还可以将该值重置为该可调用的结果

相关问题 更多 >