如何从ManyToManyField获取数据 - Django

时间:2016-03-18 08:35:31

标签: python django manytomanyfield

我从模型事件的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_id event_id 字段。所以我想输出来自 Event 模型的所有事件信息,其中来自该附加表的 user_id 等于request.user。请帮忙,我该怎么做?

1 个答案:

答案 0 :(得分:1)

您可以执行request.user.users.all()

请注意,由于您设置了related_name,因此定义了从User到Event的向后关系,这会造成不必要的混乱。把它留下来,代码更容易理解:

request.user.event_set.all()

(如果您必须设置一个,至少称之为events,而不是users。)