python - 为没有多对多关系的 friend 创建架构?

标签 python sql mysql django django-models

我正在开发我的第一个 Django 应用程序,并尝试为其创建模型,但我一直坚持如何创建我认为应该是简单的模型关系。我想为用户创建一个模型,具有用户名、密码(当然是哈希值)、加入日期等典型属性。然后希望能够将该用户链接到网站上的所有 friend /关注者。但我陷入困境的是我如何设置这种关系,因为一个用户可以有很多 friend ,我可以关闭用户表的主键,但是如何为 friend 表创建一个具有主键的模型user 表有两个功能,一是映射到用户,二是映射到所有 friend 的主键?

 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)

最佳答案

首先,我建议您不要创建自己的用户模型,而是使用 Django 中内置的用户模型。它会处理您正在寻找的所有字段。

其次,我还会创建一个“个人资料”模型并将我的 friend 存储在其中。看看这里有哪些配置文件:http://docs.djangoproject.com/en/1.2/topics/auth/#storing-additional-information-about-users

第三,在您的个人资料模型中,我会为 friend 添加一个字段,如下所示:http://docs.djangoproject.com/en/1.2/ref/models/fields/#django.db.models.ManyToManyField.symmetrical

然后,您可以访问用户的好友,例如 user.get_profile().friends.all()。有点冗长,但保持简洁。

关于python - 为没有多对多关系的 friend 创建架构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4904891/

相关文章:

MySQL多表选择SUM查询

python - 为什么我无法连接到远程 mysql 数据库?

python - 在 python 中,为什么 math.floor(4.9999999999999999) == 5?

mysql - 具有不同数据的 3 类用户

SQL Server 在表 y 中不不同的行的日期之前获取表 x 中的最新值

php - 如何将数据库中最后两个插入值的 id 匹配到包含相同值的新数组

python - 不获取所有值,而是使用一对一字段获取另一个模型中字段的特定值

python - Postgres : Retrieve records Sequentially at 5 seconds interval

php - 用户可以使用 php 中的 session 访问管理页面

php - 无法将包含撇号的数据保存到 MySQL 数据库