django 标签 { % block content % } 不工作
django tag { % block content % } isn't working
所以我刚开始学习 Django,我了解基本的标签块,但它在我的页面上效果不佳。我有一个名为 index.html 和 question.html
的页面
我在index.html
中是这样写的
<body>
<div>
<div>
sum content
</div>
<div>
{ % block content % }
{ % endblock % }
</div>
</div>
</body>
并在 question.html 中像这样:
{ % extends 'index.html' % }
{ % block content % }
<<my content>>
{ % endblock % }
但是 question.html 中的内容没有出现在 index.html 中。我检查了我的设置,没有像其他情况那样的 django-stub。
如果你想知道结构,它是这样的:
djangoProject1
>djangoProject1
>myweb
>static
>templates
-index.html
-question.html
这是我的views.py
def index(request):
return render(request, 'index.html')
def question(request):
return render(request, 'question.html')
def formdata(request):
nama = request.POST.get("namaa")
umur = request.POST.get("umur")
komorbid = request.POST.get("penyakit_bawaan")
ruang = request.POST.get("ketersediaan_ruang")
demam = request.POST.get("demam")
lelah = request.POST.get("lelah")
batuk = request.POST.get("batuk")
nyeri = request.POST.get("nyeri")
tersumbat = request.POST.get("tersumbat")
pilek = request.POST.get("pilek")
sakit_kepala = request.POST.get("sakit_kepala")
tenggorokan = request.POST.get("tenggorokan")
diare = request.POST.get("diare")
hilang_cium = request.POST.get("hilang_penciuman")
ruam = request.POST.get("ruam")
sesak = request.POST.get("sesak")
sulit_gerak = request.POST.get("sulit_gerak")
nyeri_dada = request.POST.get("nyeri_dada")
hasil_rekomendasi = request.POST("hasil_rekomendasi")
data_resp = DataResponden(nama=nama, umur=umur, penyakit_bawaan=komorbid, ketersediaan_ruang=ruang, demam=demam,
lelah=lelah, batuk=batuk, nyeri=nyeri, tersumbat=tersumbat, pilek=pilek,
sakit_kepala=sakit_kepala, tenggorokan=tenggorokan, diare=diare,
hilang_penciuman=hilang_cium, ruam=ruam, sesak=sesak, sulit_gerak=sulit_gerak,
nyeri_dada=nyeri_dada, hasil_rekomendasi=hasil_rekomendasi)
data_resp.save()
return render(request, 'question.html')
提前致谢!
像这样去掉标签块中的空格:
改变这个:
{ % block content % }
为此:
{% block content %}
与其他标签块类似。
您似乎对模板的工作方式有些困惑。 index.html
是一个 parent/base 模板,因为它正在被扩展(通过 {% extends 'index.html' %}
标签)。 question.html
是一个子模板,这意味着如果您不做任何更改,它将继承 index.html
.
的所有内容
子模板可以使用 {% block %}
标签覆盖父模板的一部分。因此,当呈现网页时,根本不使用父块中的代码(如果有的话)。当你直接渲染父模板时,不会有这样的替换,因为它没有扩展任何东西。
所以为您的文件呈现的HTML应该如下
index.html
<body>
<div>
<div>
sum content
</div>
<div>
</div>
</div>
</body>
question.html
<body>
<div>
<div>
sum content
</div>
<div>
<<my content>>
</div>
</div>
</body>
是的,question.html
中的内容不应该出现在 index.html
中。它以相反的方式工作,index.html
的整个结构用于 question.html
,除了你覆盖的东西。
如果你希望索引默认有一些内容,你可以在content
块中添加代码。如有必要,它将被任何子模板替换,但当您仅加载时 index.html
它仍然可见。
如果您真的想在 index.html
中插入一些内容,请查看 include
tag。这允许跨网页重复使用网站的公共部分。但是您 不会 在您计划包含的任何模板中扩展基本模板。
所以我刚开始学习 Django,我了解基本的标签块,但它在我的页面上效果不佳。我有一个名为 index.html 和 question.html
的页面我在index.html
中是这样写的<body>
<div>
<div>
sum content
</div>
<div>
{ % block content % }
{ % endblock % }
</div>
</div>
</body>
并在 question.html 中像这样:
{ % extends 'index.html' % }
{ % block content % }
<<my content>>
{ % endblock % }
但是 question.html 中的内容没有出现在 index.html 中。我检查了我的设置,没有像其他情况那样的 django-stub。
如果你想知道结构,它是这样的:
djangoProject1
>djangoProject1
>myweb
>static
>templates
-index.html
-question.html
这是我的views.py
def index(request):
return render(request, 'index.html')
def question(request):
return render(request, 'question.html')
def formdata(request):
nama = request.POST.get("namaa")
umur = request.POST.get("umur")
komorbid = request.POST.get("penyakit_bawaan")
ruang = request.POST.get("ketersediaan_ruang")
demam = request.POST.get("demam")
lelah = request.POST.get("lelah")
batuk = request.POST.get("batuk")
nyeri = request.POST.get("nyeri")
tersumbat = request.POST.get("tersumbat")
pilek = request.POST.get("pilek")
sakit_kepala = request.POST.get("sakit_kepala")
tenggorokan = request.POST.get("tenggorokan")
diare = request.POST.get("diare")
hilang_cium = request.POST.get("hilang_penciuman")
ruam = request.POST.get("ruam")
sesak = request.POST.get("sesak")
sulit_gerak = request.POST.get("sulit_gerak")
nyeri_dada = request.POST.get("nyeri_dada")
hasil_rekomendasi = request.POST("hasil_rekomendasi")
data_resp = DataResponden(nama=nama, umur=umur, penyakit_bawaan=komorbid, ketersediaan_ruang=ruang, demam=demam,
lelah=lelah, batuk=batuk, nyeri=nyeri, tersumbat=tersumbat, pilek=pilek,
sakit_kepala=sakit_kepala, tenggorokan=tenggorokan, diare=diare,
hilang_penciuman=hilang_cium, ruam=ruam, sesak=sesak, sulit_gerak=sulit_gerak,
nyeri_dada=nyeri_dada, hasil_rekomendasi=hasil_rekomendasi)
data_resp.save()
return render(request, 'question.html')
提前致谢!
像这样去掉标签块中的空格:
改变这个:
{ % block content % }
为此:
{% block content %}
与其他标签块类似。
您似乎对模板的工作方式有些困惑。 index.html
是一个 parent/base 模板,因为它正在被扩展(通过 {% extends 'index.html' %}
标签)。 question.html
是一个子模板,这意味着如果您不做任何更改,它将继承 index.html
.
子模板可以使用 {% block %}
标签覆盖父模板的一部分。因此,当呈现网页时,根本不使用父块中的代码(如果有的话)。当你直接渲染父模板时,不会有这样的替换,因为它没有扩展任何东西。
所以为您的文件呈现的HTML应该如下
index.html
<body>
<div>
<div>
sum content
</div>
<div>
</div>
</div>
</body>
question.html
<body>
<div>
<div>
sum content
</div>
<div>
<<my content>>
</div>
</div>
</body>
是的,question.html
中的内容不应该出现在 index.html
中。它以相反的方式工作,index.html
的整个结构用于 question.html
,除了你覆盖的东西。
如果你希望索引默认有一些内容,你可以在content
块中添加代码。如有必要,它将被任何子模板替换,但当您仅加载时 index.html
它仍然可见。
如果您真的想在 index.html
中插入一些内容,请查看 include
tag。这允许跨网页重复使用网站的公共部分。但是您 不会 在您计划包含的任何模板中扩展基本模板。