Django auf Apache-web-server 'dict' - Objekt hat kein Attribut 'render_context'
Bin ich ein bisschen ein problem, ich lud meine Django-Projekt zu einem webserver mit apache, mod_python und django. Auf dem computer, die ich entwickelt habe, auf das folgende funktioniert
nameBox = getNamesBox().render(locals())
-
def getNamesBox():
users = User.objects.filter()
templateString = '<select name="name box">'
for user in users:
templateString += '<option value="' + user.name + '"> ' + user.name + '</option>'
templateString += '</select>'
template = Template(templateString)
return template
Aber auf dem web-server bei der Ausführung von apache oder manage.py runserver, es sagt
AttributeError at /order_site/order/
'dict' object has no attribute 'render_context'
Den code auf beiden Maschinen identisch ist, so fühle ich mich, wie vielleicht eine andere Frage? Es kann nicht Rendern meiner form, und ich weiß nicht, warum.
- Sie scheinen zu übersehen, die ganzen Vorlagen, die es gibt. Warum erstellen Sie den text manuell mit concatentation und dann "Rendern" etwas, das enthält keine template-syntax, sondern tatsächlich mit einer template-Datei mit der richtigen Vorlage Logik, dass das alles für Sie?
- Oder, noch besser, verwenden Sie Formular-Klassen.
- nun ja, in der Tat.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den
render()
Methode auf eineTemplate
dauertContext
- Objekt als argument, nicht eine dict. Sie haben zu bauenContext
Objekt aus der dict, z.B.from django.template import Context
render()
nimmt ein dict wie Kontext, die nicht über diese MethodeTemplate,render()
Umsetzung von Django 1.11. Es versucht, auf render_context Attribut des übergebenen dict-Objekt. In meinem Fall es hat einen Fehler, wenn ich an einem dict-object. Es sagt, "dict object has no attribute 'render_context'
. "