Python 多对多反向关系Django
我正在尝试编写一个简单的消息系统 基本上我有一个用户表和一个消息表Python 多对多反向关系Django,python,sql,django,database-administration,Python,Sql,Django,Database Administration,我正在尝试编写一个简单的消息系统 基本上我有一个用户表和一个消息表 class User(models.Model): user = models.OneToOneField(User)# inherit djangos default user properties messages = models.ManyToManyField(Message) 我希望能够将尽可能多的用户添加到尽可能多的消息中 我希望能够说出messages.users和users.messages 实现
class User(models.Model):
user = models.OneToOneField(User)# inherit djangos default user properties
messages = models.ManyToManyField(Message)
我希望能够将尽可能多的用户添加到尽可能多的消息中
我希望能够说出messages.users和users.messages
实现这一目标的最佳方式是什么 你不应该定义双方的关系。选择一个-可能是消息-并在那里定义它。Django自动提供反向关系 此外,您不需要单独的用户类,特别是当M2M字段位于消息本身上时。所以,你可以这样做:
class Message(models.Model):
date = models.DateField()
text = models.CharField(max_length=255)
users = models.ManyToManyField('auth.User')
现在,您可以使用
my\u user.message\u set.all()
访问用户的消息,以及使用my\u messages.users.all()
访问消息的用户。您不应该在两侧定义关系。选择一个-可能是消息-并在那里定义它。Django自动提供反向关系
此外,您不需要单独的用户类,特别是当M2M字段位于消息本身上时。所以,你可以这样做:
class Message(models.Model):
date = models.DateField()
text = models.CharField(max_length=255)
users = models.ManyToManyField('auth.User')
现在,您可以使用
my\u user.message\u set.all()
访问用户的消息,以及使用my\u messages.users.all()
访问消息的用户。您不应该在两侧定义关系。选择一个-可能是消息-并在那里定义它。Django自动提供反向关系
此外,您不需要单独的用户类,特别是当M2M字段位于消息本身上时。所以,你可以这样做:
class Message(models.Model):
date = models.DateField()
text = models.CharField(max_length=255)
users = models.ManyToManyField('auth.User')
现在,您可以使用
my\u user.message\u set.all()
访问用户的消息,以及使用my\u messages.users.all()
访问消息的用户。您不应该在两侧定义关系。选择一个-可能是消息-并在那里定义它。Django自动提供反向关系
此外,您不需要单独的用户类,特别是当M2M字段位于消息本身上时。所以,你可以这样做:
class Message(models.Model):
date = models.DateField()
text = models.CharField(max_length=255)
users = models.ManyToManyField('auth.User')
现在,您可以使用
my\u user.message\u set.all()
访问用户的消息,以及使用my\u messages.users.all()
访问消息的用户。不要重新发明轮子-使用。或者,至少,看看它的功能。不要重新发明轮子的用途。或者,至少,看看它的功能。不要重新发明轮子的用途。或者,至少,看看它的功能。不要重新发明轮子的用途。或者,至少,看看它的颜色。