plantillas para bootstrap html django variables include django-templates

html - para - django templates bootstrap



Asignar variables a la plantilla secundaria en la etiqueta{% include%} Django (1)

Como sugirió @Besnik, es bastante simple:

{% include "subject_file_upload.html" with form=form foo=bar %}

La documentación para include menciona esto. También menciona que puede usar only para representar la plantilla solo con las variables dadas, sin heredar ninguna otra variable.

Gracias @Besnik

Tengo este código (que no me da el resultado esperado)

#subject_content.html {% block main-menu %} {% include "subject_base.html" %} {% endblock %} #subject_base.html .... .... <div id="homework" class="tab-section"> <h2>Homework</h2> {% include "subject_file_upload.html" %} </div>

plantilla de niño:

#subject_file_upload.html <form action="." method="post" enctype="multipart/form-data">{% csrf_token %} {{ form.as_p }} <input type="submit" value="submit"> </form>

y mi vista

#views.py @login_required def subject(request,username, subject): if request.method == "POST": form = CarsForm(request.POST, request.FILES) if form.is_valid(): form.save() return HttpResponseRedirect("/") form = CarsForm() return render_to_response(''subject_content.html'', {''form'':form}, context_instance=RequestContext(request))

El código anterior crea HTML de la manera que yo quiero que sea, sin embargo, el formulario no actualiza la base de datos.

PERO,

Si omito la plantilla del medio y voy directamente al formulario de carga, funciona bien:

#subject_content.html {% block main-menu %} {% include "subject_file_upload.html" %} {% endblock %}

Ayúdame por favor para que funcione con la plantilla del medio. Quiero hacer esto, porque no quiero escribir el mismo código más de una vez.