如何从 ManyToManyField 获取数据 - Django

How to get data from ManyToManyField - Django

我在从模型事件的此 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 创建一个额外的 table "events_event_users" ,存储user_idevent_id字段。所以我想输出来自 Event 模型的所有事件信息,其中 user_id 来自那个额外的 table 等于 request.user。请帮忙,我该怎么办?

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

请注意,由于您设置的 related_name 定义了从用户到事件的后向关系,因此造成不必要的混淆。忽略它,代码更容易理解:

request.user.event_set.all()

(如果一定要设置一个,至少要叫events,不要叫users。)