为没有多对多关系的朋友的用户创建模式?

2021-05-13 13:58:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在开发我的第一个Django应用程序,并试图为其创建模型,但我仍然停留在如何创建我认为应该是简单的模型关系上。我想为一个用户创建一个模型,具有典型的属性,如用户名、密码(当然是散列)、加入日期等。然后希望能够将这个用户链接到网站上的所有朋友/关注者。但是我遇到的问题是如何建立这种关系,因为一个用户可以有很多朋友,我可以为用户表设置主键,但是如何为朋友表创建一个模型,该模型具有用户表的主键,有两个功能,一个是对用户的映射,另一个是对所有朋友的主键的映射?在

 from django.db import models

class User(models.Model):
    username = models.CharField(max_length=50)
    password = models.CharField(max_length=200)
    dateJoined = models.DateField('date joined')

class Friends(models.Model):
    user = models.ForeignKey(User)
2条回答
网友
1楼 ·

首先,我建议您不要创建自己的用户模型,而是使用Django内置的模型。它会照顾到你要找的所有领域。在

第二,我还将创建一个“profile”模型并将我的朋友存储在其中。在这里看看什么是概要文件:http://docs.djangoproject.com/en/1.2/topics/auth/#storing-additional-information-about-users

第三,在你的profile模型中,我会为朋友添加一个字段,正如这里所示:http://docs.djangoproject.com/en/1.2/ref/models/fields/#django.db.models.ManyToManyField.symmetrical

然后,您可以为user.get_profile().friends.all()这样的用户访问朋友。有点啰嗦,但保持整洁。在

网友
2楼 ·
CREATE TABLE friends (user_id int, friend_id int)

两列都引用了用户ID。我不知道Django模型,但是从代码中推测,它看起来像:

^{pr2}$

相关问题