在Django 2.0.2中渲染

时间:2018-02-19 13:46:31

标签: python django django-templates django-views

请问有人帮帮我吗? 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'),

我做错了什么?没有显示合作伙伴列表。谢谢你的帮助!

1 个答案:

答案 0 :(得分:0)

你的路径中有一美元。删除它。

path(r'partners/$', partners, name='partners'),

您的视图和模板看起来不错。首先,确保视图实际上使用的是您在问题中显示的模板。如果循环没有在模板中显示任何内容,则表明您在数据库中没有任何合作伙伴。您可以通过向视图添加print(partners_list)来进行检查。 Django调试工具栏可用于调试此类问题。