from django.contrib import admin from . import models admin.site.register(models.Artikel)
from django.urls import path from . import views urlpatterns = [ path("<int:id>/something/, views.something, name="mysomething") ]
Die entsprechende view sieht so aus:
def something(request, id): pass
def something(request, id): return HttpResponse(id)
Gibt es nicht - muss durch if-Anweisungen abgebildet werden.
{% if Bedingung %} Code {% else %} Code {% endif %}
Ab django 1.4 existiert auch {% elif %}, voher kann man sich mit:
{% load assign %} {% assign name="Variablenname" %} 0 {% endassign %} {% if Bedingung %} Code {% assign name="Variablenname" %} 1 {% endassign %} {% endif %} {% if Bedingung AND Variablenname == 0 %} Code {% assign name="Variablenname" %} 1 {% endassign %} {% endif %} {% if Bedingung AND Variablenname == 0 %} Code {% else %} Code {% endif %}
Man setzt einfach eine Variable wenn ein if-Zweig durchlaufen wurde und prüft bei allen folgenden if-Anweisungen ob diese Variable auf 0 steht, steht sie auf 1, wurde bereits ein if-Zweig durchlaufen und es soll kein weiterer if-Zweig durchlaufen werden. Man erhält so eine case- oder switch-Anweisung.
Zuweisung:
{% assign name="Variablenname" %} 1 {% endassign %}
Auslesen:
{{ Variablenname }}
bzw. letztendlich wie jede andere interne Variable auch
Hinweis: Möglicherweise funktioniert Assign nur beim höchsten Eltern-Template (also bei Vererbung/verschachtelten Templates das Höchste - das was kein „extends“ mehr enthält)
Problem | Beschreibung | Mögliche Lösung |
---|---|---|
Ein oder alle Blöcke ({% Block Name %}) werden leer ausgegeben | Obwohl die Blöcke einen Inhalt haben sollten, werden sie ohne Inhalt in der Website angezeigt - es kommt keine Fehlermeldung | Der Name eines oder mehrere Blöcke (es müssen alle Ebenen bei vererbten Templates geprüft werden) steht nicht in „ “. Also (Falsch): {% Block main %} statt (Richtig): {% Block „main“ %} |
Ausgabe „The _imaging C module is not installed“ | PIL (Python Image Librarie) vermisst das Modul _imaging bzw. das Modul ist nicht gegen die Systembibliotheken gelinkt. | PIL ist nur teilweise in Python relaisiert, ein Teil wird durch C-Bibliotheken erledigt (u.a. libjpeg) die über das PIL-eigene C-Modul _imaging realisiert wird. Vor allem in virtualenv kann es nach dem verschieben auf eine andere Maschine zu Problemen kommen.
Durch das deinstallieren und wieder installieren wird _imaging neu compiliert und gegen die vorhandenen Systembibliotheken gelinkt |