假设有两个表
- mysql表名:user,Django型号名称:User
- mysql表视频:用户,Django模型名称:视频
醇>
用户模型包含一个字段
+-------------------+---------+------+-----+---------+----------------+
| 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中使用模型而不使用原始查询来实现此目的的任何好方法。
答案 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