Django查询多对多字段
我有这两种型号Django查询多对多字段,django,django-templates,django-views,Django,Django Templates,Django Views,我有这两种型号 class Tickets(models.Model): id = models.CharField(primary_key=True, max_length=12) recipients = models.ManyToManyField(CustomUser) title = models.CharField(blank=True, max_length=100) class CustomUser(AbstractBaseUser, Permissio
class Tickets(models.Model):
id = models.CharField(primary_key=True, max_length=12)
recipients = models.ManyToManyField(CustomUser)
title = models.CharField(blank=True, max_length=100)
class CustomUser(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(primary_key=True,)
user_name = models.CharField(blank=False, max_length=20)
在票证模型中,收件人可能包括多个用户。
我正在努力
1.阅读特定用户拥有多少票证。
2.按收件人重新组合票据以在模板中获得此类输出
我真的很努力的重组,但没有什么结果。。。
有人能给我一些指导吗?如果您只想获得每个用户的票证,您可以使用反向关系
users = CustomUser.objects.all()
在模板中
{% for user in users %}
{{ user.username }}
{% for ticket in user.ticket_set.all %}
{{ ticket.id }}
{{ ticket.title }}
{% endfor %}
{% endfor %}
但如果user1不在任何票证中,您的方法将显示user1,其下方为空白,对吗?@user2869934这就是为什么您有一个if语句。我正在将此筛选器添加到模板中,但不起作用。{%fort t in user1.tasksticket_set.all | finished==False%}你有什么想法吗?如果你不想让用户没有票证:就在{{foruser in users}下面,放上{If user.ticket_set},然后在最后一个{%endfor%}之前关闭它
{% for user in users %}
{{ user.username }}
{% for ticket in user.ticket_set.all %}
{{ ticket.id }}
{{ ticket.title }}
{% endfor %}
{% endfor %}