我需要一些帮助。我有一个模特"活动"与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="event", blank=True)
image = models.ImageField(
upload_to='images/',
default='images/default.png'
)
因此,很多中介表有两个字段:user_id
和event_id
。
如何计算此表中有多少event_id = 1
或event_id = 2
...?感谢
答案 0 :(得分:1)
您需要的只是以下型号的事件:
class Event(models.Model):
name = models.CharField(max_length=26)
description = models.CharField(max_length=200)
date = models.DateField()
user = models.ManyToMany(User, related_name="events")
image = models.ImageField(
upload_to='images/',
default='images/default.png'
)
然后从User
的对象(比如logged_in_user
),您可以拨打logged_in_user.events.all()
之类的电话来获取所有活动。或者,如果您只需要事件ID,则logged_in_user.events.values_list('id', flat=True)
如果您只想要一个计数,那么它应该是logged_in_user.events.count()
。如您所见,您可以将events
视为与任何其他管理员相同(例如您的用户模型上的对象)。
如果您需要使用event_id
参与单个活动的用户数。用户:Event.objects.get(id=event_id).users.count()