Etiqueta de bloque no válida: ‘endblock’. ¿Olvidaste registrarte o cargar esta etiqueta?

3 minutos de lectura

Me quedo atascado en este error. Soy nuevo usuario de Django y lo estoy aprendiendo siguiendo los pasos en el canal de Youtube. Hice todo igual pero obtuve este error de etiqueta de bloque. aquí está el contenido html de layout1:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>{ % block title %}{% endblock %}</title>
</head>
<body>
{ % block content %}   {% endblock %}
</body>
</html>

indexar contenido html:

{% extends "layout/layout1.html"%}


{% block title %}The Video page{% endblock %}


{ % block content %}


<h1>This is a html</h1>

<p>This is a p tag</p>

<a href="http://www.noobmovies.com">Click me!</a>
<img src="https://upload.wikimedia.org/wikipedia/en/7/72/Anthony_Raneri.jpg"/>

{% endblock % }

vistas.py contenido:

from django.template.response   import TemplateResponse


# Create your views here.
def video(request):

    return TemplateResponse (request,"video/index.html",{})

¿Cómo puedo manejar este problema? Como verifiqué dos veces para asegurarme de que todo esté escrito igual que el canal de Youtube y, normalmente, no llegué a donde cometí un error.

Django no reconoció tu etiqueta de bloque inicial, porque tienes un espacio entre el { y el %.

También tiene el mismo error en las etiquetas de inicio y finalización en el otro archivo de plantilla.

Simplemente tienes errores tipográficos.

Deberías {% no { %y obtuviste esos errores tipográficos en ambas plantillas.

Entonces necesitas tener

<!DOCTYPE html>
<html lang="en">

  <head>
    <meta charset="UTF-8">
    <title>{% block title %}{% endblock %}</title>
  </head>
  <body>
    {% block content %}   {% endblock %}
  </body>
</html>

y

{% extends "layout/layout1.html"%}


{% block title %}The Video page{% endblock %}


{% block content %}
  <h1>This is a html</h1>

  <p>This is a p tag</p>

  <a href="http://www.noobmovies.com">Click me!</a>
  <img src="https://upload.wikimedia.org/wikipedia/en/7/72/Anthony_Raneri.jpg"/>

{% endblock %}

NOTA: no se olvide de las identificaciones en html archivos, hace que el código sea más legible.

  • Claro y totalmente comprensible. ¡Gracias!

    – М.Á.

    18 de julio de 2017 a las 19:52

Si ninguna de las respuestas anteriores funcionó para usted, intente lo siguiente:

Lo más probable es que esté utilizando un archivo base.html y tenga el css estático cargado en la parte superior {% load static %} y el problema para mí fue que también necesitaba cargar esto en mi otro archivo de plantilla.

Estoy usando Django 2.0.3 y esto me solucionó el problema.

Para mí, Emacs rompió las líneas cuando copié la plantilla, así que

{% endif  

estaba en una línea y

%} 

estaba en la siguiente línea. Estos deben estar juntos en una línea, y

{{ variable_name }}

también.

Para mí fue el tema de usar i18n sin poner la {% load i18n %} dentro del archivo de plantilla (solo lo puse en la plantilla base)

Avatar de usuario de Mohammad Khatibzadeh
Mohammad Jatibzadeh

Para mí el problema era con {% extends %}fue extendido.

Avatar de usuario de Cryce Truly
Cryce verdaderamente

En su plantilla Html, asegúrese de {% load static %} justo después de tu {% block content %}
antes de usarlo en la plantilla

¿Ha sido útil esta solución?