views.pyで値一覧を取得する
モデルから値一覧を取得するには、Model.objects.all()のようにallメソッドを用いる。
画面上で表示するには、取得した値のリストを一度ディクショナリーにして、contextに設定してテンプレートに渡す。
- views.py
from app.models import User # モデルをインポート
def users(request):
user_list = User.objects.all() # 値一覧を取得
user_dict = {'users': user_list} # ディクショナリーの形で設定
return render(request, 'app/users.html', context=user_dict) # context=user_dictとして、users.htmlに渡す
htmlファイル上に表示する
htmlファイルでは、for文でループして、1つ1つ値を取り出す。
- users.html
<html>
<head>
<meta charset="utf-8">
<title>
</title>
</head>
<body>
{% if users %}
<!-- if文 usersが指定されている場合には、endifまでの文が表示されます -->
<ol>
{% for person in users %}
<!-- for文 personという変数名でusersリストをループします -->
<li>User Info</li>
<ul>
<li>First Name: {{ person.first_name }}</li>
<li>Last Name: {{ person.last_name }}</li>
<!-- personのfirst_name,last_nameをそれぞれ表示 -->
</ul>
{% endfor %}
</ol>
{% endif %}
</body>
</html>
djangoを立ち上げると以下のように画面が表示されます。