我在views.py文件中出现错误,因此我无法加载页面。
音乐/ views.py
<button ... [popoverTitle]="helpTitle" [ngbPopover]="popContent">
...
</button>
导致错误的行可能是:
from django.shortcuts import render
from django.http import HttpResponse
from .models import Album
# Create your views here.
#each URL is connected to a view or an Http Response
def index(request):
all_albums = Album.objects.all()
html = ' '
for album in all_albums:
url= '/music/' + str(album_id) + '/'
html +='<a href="' + url + '">'+album.album_title+'</a><br>'
return HttpResponse(html)
def detail(request,album_id):
return HttpResponse("<h2>Details for Album id:" + str(album_id) + "</h2>")
实际(页面)错误是:
url= '/music/' + str(album_id) + '/'
在另一个测试中,album_id似乎确实是“accessbile”
http://127.0.0.1:8000/music/1/
将正确加载页面(相册ID号显示在页面上)。
错误指向上面的代码,但我看不出如何修复它。继新波士顿教程之后,我用google搜索是否有Django 2.0修复无效
总结:
http://127.0.0.1:8000/music/是不起作用的。
http://127.0.0.1:8000/music/1或http://127.0.0.1:8000/music/3在生成相册ID时显示正常。
更新
还发布了urls.py
NameError at /music/
name 'album_id' is not defined
Request Method: GET
Request URL: http://127.0.0.1:8000/music/
Django Version: 2.0
Exception Type: NameError
Exception Value:
name 'album_id' is not defined
Exception Location: C:\Users\User\Desktop\website\music\views.py in index, line 13
Python Executable: C:\Python34\python.exe
Python Version: 3.4.3
Python Path:
['C:\\Users\\User\\Desktop\\website',
答案 0 :(得分:0)
def index(request):
all_albums = Album.objects.all()
html = ' '
for album in all_albums:
url= '/music/' + str(album_id) + '/'
在使用之前,您尚未定义album_id
。
您在循环for album in all_albums:
中,因此如果您想要相册ID,请使用album.id
。
您通常不会在视图中构建字符串。希望您的教程将在以后继续渲染模板。