【发布时间】:2019-06-29 00:37:37
【问题描述】:
我想在我的 DRF 数据库应用程序中使用两个不同的主键。默认情况下,Django“创建” id 为 PK,但是当我尝试在模型中定义新字段(uuid = models.UUIDField(primary_key=True,default=uuid.uuid4,editable=False)时,未定义默认 id 字段(在 DB 中只存在 uuid)。
如何初始化它们?
我可以提一下,我没有在我的模型中定义 id 字段,因为它是(或者应该是 - 正如我所想的那样)由 DRF 添加。
class Store(models.Model):
uuid = models.UUIDField(primary_key=True, default=uuid.uuid4,
editable=False)
name = models.CharField(max_length=100, blank=False)
url = models.URLField(max_length=300, blank=False)
country = models.CharField(max_length=100, blank=True)
【问题讨论】:
-
而不是将primary_key设置为True,而是将唯一设置为True。这将是拥有两个唯一字段的标准方式。
-
@5parkp1ug 它是部分好的解决方案,因为它可以工作,但我想在其他模型中使用 uuid 作为外键。是否可以连接例如产品(型号)字段
storeUUID = models.ForeignKey(Store)即使 uuid 不是 PK 而是唯一的? -
您的 UUID 字段是唯一的,您始终可以使用 to_field 参数。检查这个link
标签: mysql django django-rest-framework uuid