如何使模型字段从函数返回默认值?
class Q(models.Model):
_random_id = models.CharField(max_length=18)
@property
def random_id(self):
return self._random_id
@random_id.setter
def random_id(self):
self._random_id = f()
这可以是一个值或可调用对象。如果可调用,则每次创建新对象时都会调用它。
所以,你可以给它传递一个函数:
_random_id = models.CharField(max_length=18, default=f)
Q
是 django 中内置的名称,因此最好不要将它用于您的模型。
更远,
@property
def random_id(self):
return self._random_id
这只是作为语法糖,因为您可以_random_id
直接从模型实例中引用该字段:
foo = Q()
foo._random_id
所以你应该考虑完全删除这个属性;如果需要random_id
,请将其设置为字段的名称。