如何根据其ID从python django中的manytomany表中检索数据

时间:2017-04-16 07:03:57

标签: mysql django python-2.7 django-models

假设有两个表

  
      
  1. mysql表名:user,Django型号名称:User
  2.   
  3. mysql表视频:用户,Django模型名称:视频
  4.   

用户模型包含一个字段

+-------------------+---------+------+-----+---------+----------------+
| Field             | Type    | Null | Key | Default | Extra          |
+-------------------+---------+------+-----+---------+----------------+
| id                | int(11) | NO   | PRI | NULL    | auto_increment |
| user_id           | int(11) | NO   | MUL | NULL    |                |
| video_id          | int(11) | NO   | MUL | NULL    |                |
+-------------------+---------+------+-----+---------+----------------+

现在我有了一个新的mysql表名:user_videos

select * from user_videos order by id desc;

现在我需要像这个mysql查询一样检索我的django数据:user.videos.all()

if(eElement.getElementsByTagName("Key").item(0).getTextContent().startsWith("data")){ System.out.println("Key: " + eElement.getElementsByTagName("Key").item(0).getTextContent()); } 通过video.id给我订购而不是user_videos.id

通过在python django中使用模型而不使用原始查询来实现此目的的任何好方法。

1 个答案:

答案 0 :(得分:0)

您可以通过执行以下操作来访问Django自动为您创建的连接表:

User.videos.through.objects.all()

如果您需要向联接表添加更多数据,可以使用through选项设置多对多关系并指定自定义模型:

https://docs.djangoproject.com/en/1.11/topics/db/models/#extra-fields-on-many-to-many-relationships