【问题标题】:How to get data from ManyToManyField - Django如何从 ManyToManyField 获取数据 - Django
【发布时间】:2016-03-18 08:35:30
【问题描述】:

我在从模型事件的这个 ManyToManyField(用户)中检索数据时遇到问题:

class Event(models.Model):
    name = models.CharField(max_length=26)
    description = models.CharField(max_length=200)
    date = models.DateField()
    user = models.ForeignKey(User)
    users = models.ManyToManyField(User, related_name="users", blank=True)
    image = models.ImageField(
        upload_to='images/',
        default='images/default.png'
    )

users = models.ManyToManyField 创建一个附加表“events_event_users”,它存储user_idevent_id 字段。所以我想从 Event 模型中输出所有事件信息,其中该附加表中的 user_id 等于 request.user。请帮忙,我该怎么做?

【问题讨论】:

    标签: python django manytomanyfield


    【解决方案1】:

    你可以request.user.users.all()

    注意,这会造成不必要的混乱,因为您设置了相关名称,它定义了从用户到事件的向后关系。把它排除在外,代码更容易理解:

    request.user.event_set.all()
    

    (如果必须设置一个,至少叫它events,而不是users。)

    【讨论】:

    • 不知道你如何扩展 request.user,因为 op 没有提供有关 request.user 的信息
    • 为什么 OP 需要提供任何信息? request.user 由 Django 提供;即使他们替换了自己的模型,这与我们对 Event 上定义的 reverse 关系感兴趣这一事实没有任何区别。
    • 中间表的内容是什么?事件是否有不同的 user_id?
    • @Daniel Roseman 你能帮我做一件事吗 - 现在我需要从事件模型中输出所有事件信息,其中来自该附加表的event_id 等于某个变量foo
    • 你对这些事情的看法是错误的;不要担心“附加表”,尝试根据您拥有的 Django 类来制定您的问题。但如果你不能解决这个问题,请提出一个新问题。
    猜你喜欢
    • 2021-04-04
    • 1970-01-01
    • 1970-01-01
    • 2021-10-30
    • 1970-01-01
    • 2021-07-22
    • 2018-11-08
    • 1970-01-01
    • 2020-10-31
    相关资源
    最近更新 更多