我开始学习Django并且有一些问题:) 这是views.py
from django.http import HttpResponse
from .models import Album
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)
有专辑。 这是models.py
from django.db import models
class Album(models.Model):
artist = models.CharField(max_length=250)
album_title = models.CharField(max_length=250)
genre = models.CharField(max_length=250)
我创建了两张专辑(例如“Red”和“Destiny”,我希望我的专辑有参考文件出现在页面http://127.0.0.1:8000/music/。但是只有一张专辑“Red”。我认为我的循环“for “不起作用,但我不明白为什么。 我希望你能理解我的问题。 请帮助我,我想睡觉:))
答案 0 :(得分:1)
无论如何,请以pythonic风格覆盖您的代码,可能会有所帮助
def index(request):
all_albums = Album.objects.all()
html = []
for album in all_albums:
url = '/music/%s/' % album.id
html.append('<a href ="%s">%s</a><br>' % (url, album.album_title))
return HttpResponse(''.join(html))
详细信息请参阅join docs
并且通过%
对@BjörnKristinsson字符串参数的评论来说,它是更老的方法,更好的解决方案是
def index(request):
all_albums = Album.objects.all()
html = []
for album in all_albums:
url = '/music/{id}/'.format(id=album.id)
html.append('<a href ="{url}">{title}</a><br>'.format(url=url, title=album.album_title))
return HttpResponse(''.join(html))