这些是我的要求,我不能改变:
name
的字段。这是我的主键id
的字段,但它不是我的主键。你知道吗id
也是一个自动递增字段。你知道吗我有几个问题:
id
的字段中设置primary_key
:我已经能够解决第一个问题,通过使用:
from django.db.models.fields import AutoField
from django.db.models.fields import checks
class AutoFieldNonPrimary(AutoField):
def _check_primary_key(self):
if self.primary_key:
return [
checks.Error(
"AutoFieldNonPrimary must not set primary_key=True.",
obj=self,
id="fields.E100",
)
]
else:
return []
现在我可以做:
class TheNiceUser(models.Model):
id = AutoFieldNonPrimary()
name = models.CharField(max_length=16, primary_key=True)
但是,id仍然声明为主键。现在,我的模型中有两个主键,迁移会引起抱怨。你知道吗
根据django doc,情况不应该是这样的:如果一个字段设置了primary_key
,django不应该添加一个id
字段作为主键。你知道吗
但是如果我声明一个id
字段会发生什么呢?django似乎坚持要将其作为主键,即使另一个字段已经声明为主键。你知道吗
我怎样才能摆脱这种状况?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐