49 votes

Bloc de chargement Django pour css

J'ai quelques pages. Pour chaque page, je dois charger un css unique. Pour tous les fichiers statiques, j'utilise ce . Dans l'en-tête de index.html j'ai :

{% block css  %}

{% endblock %}

Mais, par exemple, dans contact.html j'utilise :

{% extends "index.html" %}    
{% block css %}
    <link rel="stylesheet" href="{% static "css/contact.css" %}" type="text/css" />
    {% endblock %}

Et son erreur d'impression : Balise de bloc non valide : 'static', attendu 'endblock'. . Comment le réparer ?

98voto

Daniel Roseman Points 199743

Vous devez utiliser {% load static %} d'abord.

12 votes

Il est intéressant de constater que j'ai toujours besoin de charger cette fonction alors que j'ai "étendu" un modèle qui en est doté. J'ai l'impression qu'un modèle enfant devrait hériter de cette fonction s'il ne remplace pas le bloc dans lequel elle est appelée. TL;DR - Cela fonctionne réellement.

0 votes

Je trouve que la question de @JRM est une très bonne question. Quelqu'un sait-il pourquoi ?

0 votes

J'ai trouvé la même chose ! Il ne semble pas très DRY de devoir mettre en {% load whatever %} dans chaque modèle enfant, éventuellement plusieurs fois. L'équipe Django a-t-elle dit pourquoi cela se produit et si elle prévoit de le corriger ?

0voto

ragsagar Points 742

C'est

{% block css %}

{% endblock %}

1 votes

Balise de bloc non valide : 'static', attendu 'endblock'.

0voto

Sam DiceOnFire Points 61

Votre code doit être affiné.

Vous utilisez des guillemets doubles, alors que vous devez utiliser une apostrophe.

Utilisez

href ="{% static 'css/contact.css' %} "

Au lieu de

href ="{% static" css/contact.css" %} "

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X