Django外键关系
我试图建立两个表之间的关系,Registered_Users和User_Connections,这样注册的用户就可以在他们的连接列表中添加其他人(更像是添加朋友)。以下是models.py中的内容:Django外键关系,django,models,foreign-key-relationship,Django,Models,Foreign Key Relationship,我试图建立两个表之间的关系,Registered_Users和User_Connections,这样注册的用户就可以在他们的连接列表中添加其他人(更像是添加朋友)。以下是models.py中的内容: class Registered_Users(models.Model): first_name = models.CharField(max_length=30) last_name = models.CharField(max_length=30) email = mod
class Registered_Users(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
email = models.EmailField(unique=True)
password = models.CharField(max_length=10)
def __unicode__(self):
return self.email
class User_Connections(models.Model):
email = models.EmailField(blank=True)
connection_email = models.EmailField(blank=True)
user_connection = models.ForeignKey(Registered_Users, null=True)
def __unicode__(self):
return self.connection_email
我想做的是:
ru = Registered_Users.objects.get(id=1)
uc = User_Connections.objects.filter(user_connection=ru)
class RegisteredUser(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
email = models.EmailField(unique=True)
password = models.CharField(max_length=10)
connected_users = models.ManyToManyField('self', blank=True, symmetrical=False)
def __unicode__(self):
return self.email
api现在如下所示:
ru = RegisteredUser.objects.get(id=1)
another_user = RegisteredUser.objects.get(email='name@example.com')
ru.connected_users.add(another_user)
uc = ru.connected_users.all()
for user in uc:
print user.first_name, user.last_name, user.email
实现友谊的最好方法是使用Django的ManyToManyField: 您可以在此处阅读更多信息: 此外,为了解决您对查询的困惑,使用“uc”变量,您可以执行以下操作:
uc.email
用于电子邮件id
及
uc.user\u connection.first\u name
用于firstname
您可以在此处阅读有关Django查询和对象的更多信息:在User\u Connections中,电子邮件和connection\u email有什么区别?在User\u Connections中,“email”是要搜索其连接的用户的电子邮件id,connection\u email是连接(朋友)的电子邮件id。