我有一个名为loans
的应用,它在Django项目中有一个名为Loan
的模型类,其属性为start_date
。我想在模板中访问该属性。我是否必须将其设为{{ loans.loan.start_date}}
或{{ loan.start_date }}
?
提前致谢!
答案 0 :(得分:0)
您必须通过视图代码中的上下文传递Loan
的实例。如果您使用的密钥名称为loan
,则您可以使用start_date
访问{{ loan.start_date }}
。
这是最低要求:
在loans/views.py
:
from django.shortcuts import render
from .models import Loan
def detail(request, loan_id):
loan = Loan.objects.get(id=load_id)
return render(request, 'loans/index.html', {'loan': loan})
在loans/templates/loans/index.html
:
<p>The start date is: {{ loan.start_date }}</p>
答案 1 :(得分:0)
这完全取决于您将Loan
发送到视图的方式。 Django期望视图为模板提供值的上下文字典,然后模板使用/访问以向用户呈现HTML响应。无论您在上下文字典中调用该值,您在模板中如何引用它。例如:
from django.views.generic import TemplateView
class LoanView(TemplateView):
template_name = 'loan_view.html'
def get_context_data(self, **kwargs):
context = super(LoanView, self).get_context_data(**kwargs)
context['my_loan'] = Loan.objects.first()
return context
在loan_view.html中:
<h1>Loan view</h1>
<ul>
<li>Created at: {{ my_loan.start_date }}</li>
</ul>
n.b。如果您正在使用视图函数,它看起来更像这样:
from django.shortcuts import render
def loan_view(request):
context = {
'my_loan': Loan.objects.first()
}
return render(request, 'loan_view.html', context)
由于我们在my_loan
对象中使用了密钥Loan
,因此我们使用my_loan
来访问模板中的Loan
。