Memo Life

ビギナーSEのメモ書き

【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