我在定义 Django 模型时遇到问题,其中主键是基于模型字段的 UUID5。
这是我已经得到的。
class Place(models.Model):
uuid = models.UUIDField(primary_key=True, default=uuid.uuid5('PLACE_UUID_NAMESPACE', '{}{}{}'.format(self.city, self.zip, self.country)))
city = models.CharField(max_length=24, blank=True, null=True)
zip = models.CharField(max_length=6, blank=True, null=True)
country = CountryField(default='US')
问题在于像我一样引用模型字段
self.city, self.zip, self.country
。 Django 不接受我的做法。
如何使用模型字段定义 uuid5?
感谢您的帮助。
不要认为这是可能的,因为您无权从可调用的默认参数访问实例。
您最好的机会是设置随机默认 uuid 并使用预保存信号用您想要的内容覆盖它。