2016-03-25 6 views
0

FlaskでJinja2ブロックをレンダリングしようとすると問題が発生します。 私はこれがあります。Jinja2ブロックの2回のレンダリング

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ブロックが最初にやりたかったように、layout.htmlに表示されているようにH1タイトルとして、そして登録したばかりのように単純なテキストとして繰り返されます.html。私はコンテンツ内にタイトルを含むh1を保持するためにsuper()テンプレートを使用しました。私はちょうど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

を私がやって終わった何が。 –