我在使用以UUID为pk的模型的应用程序的创建形式中遇到了一个问题。
问题在于,form.instance.pk
已经在表单的__init__
方法中应用了UUID,尽管它不应该。
当我将模型的ID切换为标准实现时,确实是None
。
有没有办法可以推迟UUID的创建,直到真正创建它。
这是我的模型的样子:
class FAQ(models.Model):
id = models.UUIDField(primary_key=True, default=uuid.uuid1, editable=False)
question = models.CharField(max_length=255, null=False)
answer = models.CharField(max_length=1000, null=False)
我想找到的一种解决方案是从UUIDField删除default
kwarg并将uuid的创建移到save()
,但是我想知道是否有更好的解决方案?