请问有人帮帮我吗? Django文档说明从第二个版本开始不使用'render_to_response'。我无法在模板上显示列表。
对于模型:
class Partners(models.Model):
title = models.CharField(max_length=256)
description = models.TextField(blank=True)
image = models.ImageField(upload_to="pictures", blank=True)
link = models.URLField(max_length=128, blank=True)
def __str__(self):
return self.title
我尝试了两种方法:
def partners(request):
partners_list = Partners.objects.all()
return render(request, 'partners.html', {'partners_list': partners_list})
和
def partners(request):
partners_list = Partners.objects.all()
return TemplateResponse(request, 'partners.html', {'partners_list': partners_list})
模板是:
{% for partners in partners_list %}
<div class="col-sm-2" id="partners">
<div class="card">
<img class="card-img-top" src="{{partners.image.url}}" alt="Card image cap">
<div class="card-block">
<h4 class="card-title">{{partners.title}}</h4>
<p class="card-text">{{partners.description}}</p>
</div>
<ul class="list-group list-group-flush">
<li class="list-group-item">Cras justo odio</li>
</ul>
<div class="card-block">
<a href="{{partners.link}}" class="card-link">Card link</a>
</div>
</div>
</div>{% endfor %}
网址是:
urlpatterns = [
path('admin/', admin.site.urls),
path(r'', headpage, name='headpage'),
path(r'about/', about, name='about'),
path(r'partners/$', partners, name='partners'),
我做错了什么?没有显示合作伙伴列表。谢谢你的帮助!
答案 0 :(得分:0)
你的路径中有一美元。删除它。
path(r'partners/$', partners, name='partners'),
您的视图和模板看起来不错。首先,确保视图实际上使用的是您在问题中显示的模板。如果循环没有在模板中显示任何内容,则表明您在数据库中没有任何合作伙伴。您可以通过向视图添加print(partners_list)
来进行检查。 Django调试工具栏可用于调试此类问题。