【发布时间】:2017-12-08 20:13:37
【问题描述】:
我有一个下面给出的模型。
class mc(models.Model):
ap=models.CharField(max_length=50,primary_key=True)
de=models.CharField(max_length=50)
STATUS=models.CharField(max_length=12,default='Y')
class Meta:
unique_together=(("ap","de"),)
db_table='mc'
我已将 ap='1', de='2' 写入表 mc。
+----+----+--------+
| ap | de | STATUS |
+----+----+--------+
| 1 | 2 | Y |
+----+----+--------+
然后我尝试写 ap='1' 和 de='3' 但它只是覆盖了前一个。现在表格包含
+----+----+--------+
| ap | de | STATUS |
+----+----+--------+
| 1 | 3 | Y |
+----+----+--------+
然后我尝试编写 ap='2',de='3' 及其工作。由于我已经给出了 unique_together,所以 ap 和 de 的组合不起作用。
但如果我没有在 ap 或 de 上使用“primary_key”或“unique”约束,则 unique_together 可以工作。
你能帮帮我吗?如何在主键上使用 unique_together?
实际问题是,我有另一个类 mc1,它使用字段 ap 的外键。
class mc1(models.Model):
test=models.ForeignKey(mc,on_delete=models.CASCADE,to_field='ap')
所以 mc.ap 应该是唯一的来定义外键。
【问题讨论】:
标签: python django django-models django-rest-framework