我创建了一个发票系统,我可以在其中为用户分配项目,他们可以查看已分配的项目列表。问题是,我需要显示物品的价格。我无法弄清楚如何开始查询该属性。在我得到观点之前,我觉得一切都很稳固。也许代码可以比我更好地表达我的问题。
## models.py
class Invoice(models.Model):
date_of_service = models.DateTimeField(default=datetime.now(),blank=True)
agency_to_bill = models.ForeignKey(settings.AUTH_USER_MODEL, blank=True)
service_compelted = models.ForeignKey('Service', blank=True)
paid = models.CharField(max_length="50", choices=invoicePaid, default='False')
def __unicode__(self):
return unicode(self.agency_to_bill)
class Service(models.Model):
name_of_service = models.CharField(max_length="50")
cost = models.CharField(max_length="50")
def __unicode__(self):
return unicode(self.name_of_service)
##views.py
def invoicelist(request):
span = Bill_Period.objects.all()
return render_to_response('invoice-list.html', {'span': span})
def InvoiceDetail(request, month, year):
current_user = request.user.id
invoice_detail = invoice.objects.filter(date_of_service__year=year, date_of_service__month=month, agency_to_bill=current_user)
context = {'invoice_detail': invoice_detail}
return render_to_response('invoice-detail.html', {'invoice_detail': invoice_detail,
'current_user': current_user})
##invoice-detail.html
{% for p in invoice_detail %}
{{ p.therapy_compelted }} {{ <!--PRICE HERE--> }}
{% endfor %}
答案 0 :(得分:2)
您可以直接在模板中访问外键元素属性,而无需在视图中使用特定查询。只要您的上下文中包含主要对象(在您的情况下为发票),您就可以访问通过外键相关的元素,就像它是直接属性一样。
不确定您的变量名称,您是在讨论价格,但它不在您的模型中,然后在您的模板中,您有therapy_complete,但在您的模型中,您有service_completed。
但无论如何在模板中访问外键非常容易。像这样:
{{ p.service_completed.cost }}