Ich habe ein seltsames Problem speziell für meine Django-Bereitstellung unter Python 2.6 + Ubuntu + Apache 2.2 + FastCGI.Django Vorlage wenn Tag nicht funktioniert unter FastCGI beim Überprüfen bool True
Wenn ich eine Vorlage als solche haben:
{% with True as something %}
{%if something%}
It Worked!!!
{%endif%}
{%endwith%}
es sollte die Zeichenfolge Ausgabe "Arbeitete It !!!". Es ist nicht auf meinem Produktionsserver mit mod_fastcgi.
Dies funktioniert perfekt, wenn ich lokal mit Runserver laufen.
Ich änderte den Code zu dem folgenden, um es aus Gründen der Zweckdienlichkeit zu arbeiten, und das Problem ging weg.
{% with "True" as something %}
{%if something%}
It Worked!!!
{%endif%}
{%endwith%}
Es scheint, dass die Vorlage Parser, wenn sie unter FastCGI ausgeführt wird, können Iness nicht ermitteln (oder Truthitude) [ein dickes Lob, wenn Sie die Referenz erhalten] von Bool Variablen.
Hat jemand das gesehen? Hast du eine Lösung?
Vielleicht sind sie nicht verwandt. Die Art, wie ich die Parameter für das {% if%} - Tag verstanden habe, besteht jedoch darin, dass es an die resolve() -Methode mit einem Kontext übergeben wird. Wenn es in einen Variablennamen aufgelöst wird, wird der Variablenname zugewiesen. Sonst wird es als Literal interpretiert (True ist gültiges Literal) –
True ist in einer Vorlage standardmäßig kein gültiges Literal. (Aus Gründen der Gesundheit habe ich es lokal getestet, um es zu bestätigen) – muratgu