我正在研究我的第一个Django应用程序,并试图为它创建模型,但我仍然坚持如何创建我认为应该是一个简单的模型关系。我想为用户创建一个模型,具有典型的属性,如用户名,密码(当然是哈希),加入日期等。然后希望能够将此用户链接到网站上的所有朋友/关注者。但我陷入困境的是我如何设置这种关系,因为一个用户可以有很多朋友,我可以关闭User表的主键,但是我如何为拥有主键的friends表创建一个模型user table提供两个函数,一个是作为用户的映射,还是映射到所有朋友的主键?
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)
答案 0 :(得分:2)
首先,我建议您不要创建自己的用户模型,而是使用Django中内置的用户模型。它会照顾您正在寻找的所有领域。
其次,我还会创建一个“个人资料”模型并将我的朋友存储在其中。请查看以下内容:http://docs.djangoproject.com/en/1.2/topics/auth/#storing-additional-information-about-users
第三,在你的个人资料模型中,我会为朋友添加一个完全按照此处显示的字段:http://docs.djangoproject.com/en/1.2/ref/models/fields/#django.db.models.ManyToManyField.symmetrical
然后,您可以为user.get_profile().friends.all()
之类的用户访问朋友。有点冗长,但保持干净。
答案 1 :(得分:0)
CREATE TABLE friends (user_id int, friend_id int)
两列都引用用户ID。我不知道Django模型,但是从你的代码猜测它看起来像:
class Friends(models.Model):
user = models.ForeignKey(User)
friend = models.ForeignKey(User)