2016-10-27 1 views
0

Ich bin neu in Django und kommt aus einem PHP-Hintergrund. Wenn ich mich mit Seiten beschäftige, um Inhalte einzugeben und später bearbeiten zu können (und die Seiten auf JS-Dateien angewiesen sind), würde ich einfach eine Variable vom Controller setzen und meine Sicht (Sicht im Sinne von PHP MVC) damit umgehen lassen basierend auf der eingestellten Variablen. Auf diese Weise konnte ich dieselbe Javascript-Datei sowohl für die Erstellungs- als auch für die Bearbeitungs- Seiten verwenden, anstatt zwei separate JS-Dateien mit nur geringen Unterschieden. Zum BeispielSuchen Sie nach Variable in Django Vorlage

/some_view_file.html 

<?php 
    if(isset($editing) && $editing == true){ 
     ?> 
     <script>var editing = true; </script> 
     <?php 
    } 
    else{ 
     ?> 
     <script>var editing = false; </script> 
     <?php 
    } 
?> 

Da Django scheint eher auf Templating fokussiert werden als in der Lage zu sein, um intermittierend Python/HTML wie möglich mit PHP/HTML zu schreiben, ist es eine Möglichkeit, zu erreichen, was ich habe oben gezeigt?

Ich denke, eine bessere Frage ist, wie gehen Django-Programmierer typischerweise mit solchen Situationen um?

Dank

Antwort

1

Es ist schon eine Weile her, seit ich PHP benutzt habe, aber wenn ich verstehe, was Sie versuchen zu erreichen, möchten Sie die if/else template tags:

{% if editing %} 
    <script>var editing = true; </script> 
{% else %} 
    <script>var editing = false; </script> 
{% endif %} 
1

Django tun kann, was PHP tun kann, aber besser, prägnanter und mehr leserlich :)

{% if editing %} 
    <script>var editing = true; </script> 
{% else %} 
     <script>var editing = false; </script> 
{% endif %} 

Wo Bearbeitung Ihrer Vorlage als

geben wird
render(request, 'some_view_file.html',{'editing': true_or_false }) 

oder Es kann von einem Kontextprozessor kommen.