【问题标题】:How to retrieve data from manytomany table in python django based on its IDpython - 如何根据ID从python django中的manytomany表中检索数据
【发布时间】:2017-09-12 01:53:35
【问题描述】:

假设有两个表

  1. mysql表名:用户,Django模型名:用户
  2. mysql 表视频:用户,Django 模型名称:视频

用户模型包含一个字段

videos = models.ManyToManyField(Video, blank=True, null=True, related_name='video')

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

+-------------------+---------+------+-----+---------+----------------+
| 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 查询一样检索我的 django 的数据:select * from user_videos order by id desc;

user.videos.all() 是通过 video.id 而不是 user_videos.id 给我的订单

通过在 python django 中使用模型而不使用原始查询来做到这一点的任何好方法。

【问题讨论】:

    标签: mysql django python-2.7 django-models


    【解决方案1】:

    您可以通过以下方式访问 Django 自动为您创建的连接表:

    User.videos.through.objects.all()
    

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

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

    【讨论】:

    • 谢谢。这对我很有帮助。
    猜你喜欢
    • 2014-01-02
    • 2016-06-28
    • 2021-03-03
    • 2016-04-02
    • 1970-01-01
    • 1970-01-01
    • 2017-10-14
    • 2016-07-31
    • 1970-01-01
    相关资源
    最近更新 更多