-2
テーブルを作成するためにビューを使用しようとしました(後でデータを入力したい)。しかし、私はそれぞれのURLを開いた場合、ビューは "名前"コンテキスト 'が定義されていない "エラーを作成します。誰でも説明できますか?名前 'context'が定義されていません
def room_overview(request, year, month):
rooms = Room.objects.all()
long_month = ['01', '03', '05', '07', '08', '10', '12']
short_month = ['04','06','09','11']
if month in long_month:
month_max = 31
elif month in short_month:
month_max = 30
elif year % 4 == 0 and year %100 != 0 or year % 400 == 0:
month_max = 29
else:
month_max = 28
days = []
for i in range(1, month_max + 1):
days.append(str(i))
context['rooms'] = rooms
context['days'] = days
context['month'] = month
context['year'] = year
return render(request, 'hotel/overview.html', context)
ビューのテンプレートは次のようになります。
<h2>Overview {{month}}/{{year}}:</h2>
<div class="overview">
<table class="table table-condensed">
<tr>
{% for day in days %}
<th>day</th>
{% endfor %}
</tr>
{% for room in rooms %}
<tr>
<td>{{ room.name }}</td>
{% for day in days %}
<td> 1 </td>
{% endfor %}
</tr>
{% endfor %}
</table>
</div>
これはURL入力である:
url(r'^room/overview/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$',views.room_overview, name='room_overview'),
あなたは 'context' dictに直接割り当てます。ここでは最初に' context ['rooms'] = rooms'です。 *しかし、あなたの '文脈' dictはまだ存在しません!最初に作成してください(空)。 – Evert
エラーメッセージは、エラーが発生した行にかなり直接指摘する必要があります。それは死んでいたはずです。 – Evert
私は空のコンテキストdictを最初に作成しなかった同じアプリで他にもたくさんのビューを持っており、エラーは一切発生しませんでした。しかし、それは働きました。 –