2017-01-18 16 views
0

loansという名前のアプリケーションがあります。このクラスは、Loanという名前のモデルクラスと、start_dateという名前のDjangoプロジェクトです。私はテンプレート内のその属性にアクセスしたい。 {{ loans.loan.start_date}}、または{{ loan.start_date }}とする必要がありますか?テンプレート内の属性へのアクセス

ありがとうございます!

答えて

0

Loanのインスタンスをビューコードのコンテキストで渡す必要があります。使用するキーの名前がloanの場合、start_dateには{{ loan.start_date }}を使用してアクセスできます。

詳細については、here、特にhereをお読みください。

loans/views.pyで:

ここで必要な最小だ

loans/templates/loans/index.html
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}) 

<p>The start date is: {{ loan.start_date }}</p> 
+0

私は理解していると思いますが、私には情報がありません。あなたはクラスのインスタンスが何であるか私に説明できますか?私がうまく理解できるように説明すれば、私はあなたの答えを受け入れます。 –

+0

例えば 'Loan()'や 'Loan.objects.first()'を実行すると、あなたに返されるオブジェクトは、クラス「Loan」のインスタンスになります。クラスは青いプリントのようなもので、そこから作成したオブジェクトはインスタンスと呼ばれます。 –

+0

あなたの答えを完成させるための少しの例を構築する時間がありますか? –

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) 

アップ以上、私たちは私たちのLoanオブジェクトのキーmy_loanを使用しているため、私たちは、テンプレートにそのLoanにアクセスするためにmy_loanを使用しました。

関連する問題