Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 多对多反向关系Django_Python_Sql_Django_Database Administration - Fatal编程技术网

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()
访问消息的用户。不要重新发明轮子-使用。或者,至少,看看它的功能。不要重新发明轮子的用途。或者,至少,看看它的功能。不要重新发明轮子的用途。或者,至少,看看它的功能。不要重新发明轮子的用途。或者,至少,看看它的颜色。