【Djangoメモ】ビュー内でrenderしたものをテンプレートで表示する
Djangoテンプレートタグ
<!-- include あるビューの中に別のビューを取り込んで表示する --> {% include 'appname/anyview.html' %} <!-- render等で、ビューから渡されたテンプレート変数の内容を表示する --> {{ VARIABLE }}
#例:itemビューでItemモデルの全てのオブジェクトを取得し、itemテンプレートにオブジェクトのidをレンダリングする # views.py def item(self): items = Item.objects.all() return render(request, 'appname/item.html', {"items" : items})
<!-- appname/item.html内 --> {% for item in items %} {{ item.id }} {% endfor %}
staticファイルの参照
# settings.py # タプルでローカルのディレクトリを指定 STATICFILES_DIRS = ( '', ) # テンプレート用HTMLの配置場所を指定する TEMPLATE_DIRS = ''
TEMPLATE_DIRS/static/css
上記ディレクトリにbase.cssというCSSファイルを配置したとして・・・
テンプレートタグでbase.cssを参照するには以下のように記載する
<link href="stylesheet" href="{{ STATIC_URL }}css/base.css"/>
ディレクトリ構成
ローカルのディレクトリに、django_templatesフォルダを作成。プロジェクト名(django-admin.py startproject project_name の project_name)のフォルダを作成
(ここをルートとする)
その配下に、アプリケーション名フォルダを作成。
さらにその下に、ビュー名.htmlといった形で、ファイルを作成する
local_dir |_ project_name | |__ app_name | |_ |_ any_view.html