2017-06-07 9 views
2

私の目標は、HTMLページに画像のURLを動的に書き込むことです。 URLはデータベースに格納されます。djangoテンプレートで変数をレンダリングするには?

これを行うには、まずテンプレート内に単純な変数をレンダリングしようとしています。構成の

:ドキュメントや他のソースを読んで、それは3つの段階で行われるべきであるsettings.pyに

TEMPLATES = [ 
{ 
    'OPTIONS': { 
     'debug': DEBUG, 
     'context_processors': [ 
      … 
      'django.template.context_processors.request', 
      'django.template.context_processors.debug', 
      'django.template.context_processors.i18n', 
      'django.template.context_processors.media', 
      'django.template.context_processors.static', 
      'django.template.context_processors.tz', 
      'django.contrib.messages.context_processors.messages',   ], 
    }, 
}, 

]

変数名テンプレートで:でMyHTMLFile.htmlは中のfoo

… 
<td>MyLabel</td><td><p>{{ foo }}</p></td><td>-----------</td> 
… 

ですview.py、HTMLページがうまくレンダリングされるライン

myvar1 ="BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB" 
context = {foo: myvar1,} 

return render_to_response("MyHTMLFile.html", context, context_instance = RequestContext(request)) 
return render(request, 'MyHTMLFile.html', {foo: myvar1}) 
return render_to_response("MyHTMLFile.html", context , context_instance=RequestContext(request)) 
return render(request, 'MyHTMLFile.html', context) 

の一つが、HTMLテーブルにデータがありません。

アイデアはありますか?私は私が誤解していることを知りたいと思っています。版ãについて

、私が使用しています: のpython:Pythonの2.7.13 Djangoに:1.10.5

はofcourseの変数を持っていない限りこれはあなたにNameErrorを与える必要があります

答えて

4
context = {foo: myvar1,} 

ありがとうfooという名前の場合は、文字列を保持する場合としない場合があります。foo要するに、正しいデータをテンプレートに送信していません。それは

context = {'foo': myvar1,} 

そして

return render_to_response("MyHTMLFile.html", context, context_instance = RequestContext(request)) 
# Below this line code will not be executed. 
return render(request, 'MyHTMLFile.html', {foo: myvar1}) 
return render_to_response("MyHTMLFile.html", context , context_instance=RequestContext(request)) 
return render(request, 'MyHTMLFile.html', context) 

ノート機能からreturnキーワード戻りものでなければなりません。それ以降のコードは実行されません。

最後に、render_to_responseは非推奨です。 renderは、現在使用する関数です。

+0

ありがとうございますe4c5。あなたの2つの発言は関連し、私は自分のコードを修正します。私はあなたに感謝したので私は私の問題を解決した私は悪いテストをしていたことを実現。正しいテストと2つのコード調整を行うことで、期待どおりに動作します。 – alvaro562003

+0

私はupvoteしようとしました...しかし、赤でメッセージがありました "あなたは3分で答えを受け入れることができます" :-) – alvaro562003

+0

ああ今心配。あなたのプロジェクトで最高のもの – e4c5

関連する問題