django模型中的多对多关系

时间:2017-10-09 00:37:37

标签: python django django-models

我目前正在尝试针对以下情况设计我的django模型:我有一个名为User的类,每个用户都有一个唯一的用户ID。现在我想根据用户的硬币进行排名。但是,我想在用户查看排名时,只允许用户看到朋友的用户。

因此,我定义了一个具有ManytoMany字段“isfriend”的朋友,其中包含用户所有的所有用户ID。但是,我觉得我尝试这样做的方式并不是最好的方法。有什么建议我应该如何实现这个?

class User(models.Model):
    userid = models.CharField(max_length=26,unique=True)
    coins = models.IntegerField()

def __str__(self):
    return self.userid

class Friends(models.Model):
    isfriend = models.ManytoManyField(User)

    def __str__(self):
        return self.isfriend

1 个答案:

答案 0 :(得分:5)

用户有很多用户(朋友),它提供了如下解决方案:

class User(models.Model):
    userid = models.CharField(max_length=26,unique=True)
    coins = models.IntegerField()
    friends = models.ManyToManyField('self')

    def __str__(self):
        return self.userid

抱歉我的英语不好。