2016-03-25 185 views
0

我試圖在Flask上渲染Jinja2塊時出現問題。 我有這樣的:Jinja2塊渲染兩次

的layout.html

<!DOCTYPE html> 
<html lang="es-ES"> 
<head> 
    <meta charset="UTF-8"> 
    <title>{% block page_title %}{% endblock %} - misitioweb.es</title> 
</head> 
<body> 
    {% block page_content %} 
     <h1>{% block main_title %}{% endblock %}</h1> 
    {% endblock %} 
</body> 
</html> 

register.html

{% extends 'layout.html' %} 
{% block page_title %}Registrarse{% endblock %} 
{% block page_content %} 
    {{ super() }} 
    {% block main_title %}Registrate aquí{% endblock %} 
    <form action="/register/" method="post"> 
     {{ form.username.label }}{{ form.username() }} <br> 
     {{ form.email.label }}{{ form.email() }} <br> 
     {{ form.password.label }}{{ form.password() }} <br> 
     {{ form.password_compare.label }}{{ form.password_compare() }} <br> 
     {{ form.accept_tos.label }}{{ form.accept_tos() }} <br> 
     {{ form.submit() }} 
    </form> 
{% endblock %} 

結果是這樣的(這只是一個例子,沒有風格可言) : enter image description here

正如你所看到的,main_title塊被重複,首先是我想要的,作爲一個H1標題,你可以在layout.html中看到,然後作爲一個簡單的文本,就好像它只是把塊放在寄存器上html的。我使用super()模板在內容中保留包含標題的h1。我只需要H1。

我該如何解決這個問題?

回答

0

這可能做到這一點:

{% extends 'layout.html' %} 
{% block page_title %}Registrarse{% endblock %} 
{% block main_title %}Registrate aquí{% endblock %} 
{% block page_content %} 
    <form action="/register/" method="post"> 
     {{ form.username.label }}{{ form.username() }} <br> 
     {{ form.email.label }}{{ form.email() }} <br> 
     {{ form.password.label }}{{ form.password() }} <br> 
     {{ form.password_compare.label }}{{ form.password_compare() }} <br> 
     {{ form.accept_tos.label }}{{ form.accept_tos() }} <br> 
     {{ form.submit() }} 
    </form> 
{% endblock %} 
+0

這是我最終做。 –