gpt4 book ai didi

python - 使用不同的模板扩展语句 {% block%} 的方法是什么?

转载 作者:太空宇宙 更新时间:2023-11-04 05:31:21 26 4
gpt4 key购买 nike

我有这种情况,我的base.html

{% load staticfiles %}
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
...
</head>
<body>
...
<div class="container-fluid">
<div class="row">
<div class="col-xs-6">
{% block album %}
{% endblock %}
</div>
<div class="col-xs-6">
{% block artist %}
{% endblock %}
</div>
</div>
</div>

然后是我的album.html

{% extends 'polls/base.html' %}

{% block album %}
{% for album in albums %}
<div>
<h3><a href="{% url 'album_detail' pk=album.pk %}">{{album.name}}</a></h3>
<ul>
<li>Artist: {{album.artist}}</li>
<li>Genre: {{album.genre}}</li>
<li>Songs: , </li>
<li>Vote: {{album.vote}}</li>
</ul>
</div>
<hr />
{% endfor %}
{% endblock %}

我的url.py

...
url(r'^$', views.album, name='album'),
url(r'^album/(?P<pk>[0-9]+)/$', views.album_detail, name='album_detail'),
...

我的views.py

def album(request):
albums = Album.objects.all()
artists = Artist.objects.all()
return render(request,'polls/album.html',{'albums':albums,'artists':artists})

def album_detail(request, pk):
album = get_object_or_404(Album, pk=pk)
return render(request, 'polls/album_detail.html', {'album': album})

好的,相册正在渲染。但我会用另一个 file.html 做同样的事情并扩展 {% block artist %} 但不知道如何。请帮助我。

最佳答案

不确定我是否正确理解了您的问题,但您似乎需要将“艺术家”的模板 HTML 和“专辑”的 HTML 分别放在单独的 .html 文件中。

没有办法按照您的方式执行此操作,因为那样您将有两个扩展 base.html 模板的模板,并且您最终会得到两个完整的 HTML 文档。

因此您的两个部分模板 artist-partial.htmlalbum-partial.html 应该扩展 base.html.

{% for album in albums %}
<div>
...
</div>
{% endfor %}

{% for artist in artists %}
<div>
...
</div>
{% endfor %}

然后,创建另一个模板文件,可能是 album-container.html,它将作为部分模板的容器,从基本模板扩展而来。

{% extends 'polls/base.html' %}

{% block artist %}
{% include 'polls/artist-partial.html' %}
{% endblock %}

{% block album %}
{% include 'polls/album-partial.html' %}
{% endblock %}

并且该模板已加载到您的 View 中

return render(request,'polls/album-container.html',
{'albums': albums,'artists': artists})

关于python - 使用不同的模板扩展语句 {% block%} 的方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37085619/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com