我想在我的DRF数据库应用程序中使用两个不同的主键。默认情况下,django将“ id” ID创建为PK,但是当我尝试在模型中定义新字段时(uuid = models.UUIDField(primary_key = True,default = uuid.uuid4,editable = False)),未定义默认id字段(在数据库中仅存在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)
答案 0 :(得分:0)
在数据库的关系模型中,主键是对属性(列)的最小集合的特定选择,这些属性(列)唯一指定关系(表)中的元组(行)。
因此,您可以使用默认主键values
或id
(您的选择)。
如果两者都想要,请改用uuid
。
unique=True
根据您的情况,您可以将模型更改为
class Store(models.Model):
uuid = models.UUIDField(unique=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)