2012-10-23 11 views
45

Mam kilka stron. Do każdej strony potrzebuję unikalnego css. Dla wszystkich plików statycznych używam this. W głowie mam index.html:Blok ładunków Django dla css

{% block css %} 

{% endblock %} 

Ale, na przykład, w contact.html używam:

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

I jego błąd drukowania: Nieprawidłowy tag blok: 'statyczne' , oczekiwany "endblock". Jak to naprawić?

Odpowiedz

91

Trzeba użyć {% load static %} pierwszy.

+12

Interesujące, że nadal potrzebowałem go załadować, mimo że "rozszerzyłem" szablon, który ma tę "funkcję". Czuję, że szablon potomny powinien dziedziczyć tę funkcję, jeśli nie zastępuje bloku, w którym jest wywoływana. TL; DR - To faktycznie działa. – htmldrum

+0

Uważam, że @JRM jego pytanie to bardzo dobre pytanie. Ktoś wie, dlaczego tak jest? – Ward

+0

Znalazłem to samo! Wygląda na to, że nie jest bardzo SUCHE, aby wstawić '{% load what%}' w każdym szablonie potomnym, prawdopodobnie wiele razy. Jakieś słowo od zespołu Django, dlaczego tak się dzieje/jeśli planują go naprawić? – swizzard

0

to

{% block css %} 

{% endblock %} 
+0

Przepraszam, mam błąd w pierwszym kodzie. block css doesnt work – tim

+0

Jaki błąd otrzymujesz teraz? –

+1

Nieprawidłowy znacznik bloku: "static", oczekiwany "blockblock" – tim