【发布时间】:2019-06-06 15:59:42
【问题描述】:
我正在尝试访问一个相关的对象(PaymentDetail,如果它存在的话),同时遍历一个_set 对象列表 (Registrations)。
我的模型如下所示:
模型
class Registration(models.Model):
person = models.ForeignKey(Person, on_delete=models.PROTECT)
course_detail = models.ForeignKey(
CourseDetail,
on_delete=models.PROTECT
)
comments = models.CharField(max_length=200, blank=True, null=True)
def __str__(self):
return '%s' % (self.course_detail.course.name)
class PaymentDetail(models.Model):
payment = models.ForeignKey(Payment, on_delete=models.PROTECT)
registration = models.ForeignKey(
Registration,
on_delete=models.PROTECT)
在我看来,我只是得到一个所需人员的查询集并将其传递给模板(这些显示很好)。
查看
def index(request, **kwargs):
people = Person.get_related_people(request.user.id).order_by('first_name')
return render(request, 'people_app/index.html', {
'people': people,
})
当我在模板中循环浏览它们时 - 我正在为这些人显示关联的 Registrations。当我遍历这些注册时 - 我正在尝试查看是否有与 Registration 关联的 PaymentDetail
在我的模板中,我像这样循环registration_list:
模板
{% for person in people %}
{% for registration in person.registration_set.all %}
{{ registration.id }}
{% if registration.paymentdetail_set|length > 0 %}
PAID
{% else %}
NO PAYMENT
{% endif %}
{% endfor %}
{% endfor %}
正如您想象的那样 - 这不起作用,即使PaymentDetail 存在,它也始终显示为 NO PAYMENT。
【问题讨论】:
标签: django python-3.x django-models django-templates