我有2个型号。他们每个人都可以通过与IntNumber模型的一对一关系来拥有int_number。 所以我需要为它们做唯一的IntNumber.number(用户和组不应该引用相同的IntNumber)。额外的行被省略。
class Group(models.Model):
int_number = models.OneToOneField(
IntNumber,
related_name='int_number',
on_delete=models.CASCADE,
)
class User(AbstractUser):
int_number = models.OneToOneField(
IntNumber,
related_name='int_number',
on_delete=models.CASCADE,
)
class IntNumber(models.Model):
number = models.IntegerField(unique=True)
答案 0 :(得分:0)
将用户和组作为外键放在IntNumber中,这样当生成唯一IntNumber时,您可以明确地为其分配用户和组。
class IntNumber(models.Model):
number = models.IntegerField(unique=True)
user = models.ForeignKey(User)
group = models.ForeignKey(Group)
注意:如果只想为其中一个生成intNumber,可以将null = True添加到用户和组