访问模板中的属性

时间:2017-01-18 00:49:29

标签: html django class object

我有一个名为loans的应用,它在Django项目中有一个名为Loan的模型类,其属性为start_date。我想在模板中访问该属性。我是否必须将其设为{{ loans.loan.start_date}}{{ loan.start_date }}

提前致谢!

2 个答案:

答案 0 :(得分:0)

您必须通过视图代码中的上下文传递Loan的实例。如果您使用的密钥名称为loan,则您可以使用start_date访问{{ loan.start_date }}

阅读here,特别是here,了解详情。

这是最低要求:

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