django独特的模特与一对一的关系

时间:2017-11-13 14:59:05

标签: python django python-3.x django-models

我有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)

1 个答案:

答案 0 :(得分:0)

将用户和组作为外键放在IntNumber中,这样当生成唯一IntNumber时,您可以明确地为其分配用户和组。

class IntNumber(models.Model):

    number = models.IntegerField(unique=True)
    user =   models.ForeignKey(User) 
    group =  models.ForeignKey(Group) 

注意:如果只想为其中一个生成intNumber,可以将null = True添加到用户和组