from django.shortcuts import render
from django.http import HttpResponse #http response sends back html/basic webpage
from django.conf.urls import include
from django.template import loader
from .models import Album
# Create your views here.
'''def index(request):
all_objects = Album.objects.all()
html = ''
for album in all_objects:
url = "/music/" + str(album.id) + "/"
html += '<a href = "' + url + '">' + album.album_title + '</a><br>'
return HttpResponse(html)
'''
def index(request):
all_albums = Album.objects.all()
#template = loader.get_template('music/index.html')
context = {'all_albums': all_albums}
return render(request, 'music/index.html', context)
#return HttpResponse(template.render(context, request))
def detail(request, album_id):
return HttpResponse("<h2>Details of Album with id:" + str(album_id)+ "</h2>")
は完全に正しいテンプレートを生成します。 存在しないアルバムのテンプレートを追加するとき。 これは、2枚のアルバムを追加してデータベースと同期したものです.3番目のテンプレートページを見ると、404エラーが発生するはずです。 と私はそれは私がやってみたかったが、私はhttp://127.0.0.1:8000/music/2/で入力すると、それは誤り「/音楽/ 2 /でTemplateDoesNotExist」を与えて起動する404エラーを生成http://127.0.0.1:8000/music/3/を入力すると、このためのコードはDjangoのこのテンプレートで何が問題になっていますか?
from django.http import Http404
from django.shortcuts import render
from django.http import HttpResponse
from django.template import loader
from .models import Album
def index(request):
all_albums = Album.objects.all()
#template = loader.get_template('music/index.html')
context = {'all_albums': all_albums}
return render(request, 'music/index.html', context)
#return HttpResponse(template.render(context, request))
#render has an inbuilt http return type
def detail(request, album_id):
try:
album = Album.objects.get(pk=album_id)
except Album.DoesNotExist:
raise Http404("Album does not exist")
return render(request, 'music/detail.html', {'album':album})
は - 。 なぜこれが起こっている...
テンプレートとは何か、ここでの表示は混乱しているようです。詳細ビューでテンプレートを使用しないため、元のコードが機能します。 2番目のコードはdetail.htmlテンプレートを参照していますが、おそらく存在しません。 –
いいえ、私はindex.htmlと一緒にdetail.htmlテンプレートを追加しました... – shery224
それは{{album}} – shery224