In meinem Django-Projekt baue ich ein Einkaufswagensystem. Ich möchte die Warenkorbdaten in einer Sitzungsvariablen speichern, weiß aber nicht, wo ich sie initialisieren soll.Wo initialisieren Sie Django Session-Variablen?
Ich habe versucht, so etwas wie dies zu tun:
if 'cart' not in request.session:
request.session['cart'] = {}
in einem benutzerdefinierten Kontext-Prozessor, aber der Kontext-Prozessor scheint nicht die Sitzungsdaten zu ändern. Wo sonst würde ich eine Initialisierung wie diese setzen? Ich möchte es nicht an jeden Ort stellen müssen, wo ich Werte aus dem Wagen bekomme.
Der Kontextprozessor wird nur für Vorlagen ausgelöst, die mit einem RequestContext gerendert wurden. Sind Sie sicher, dass Sie anstelle eines einfachen dict- oder Context-Objekts einen RequestContext übergeben? Das funktioniert für mich. –
Das verwirrte mich, denn ja, ich habe sichergestellt, dass ich einen RequestContext übergebe. Tatsächlich wurde anderer Code im Kontextprozessor ausgeführt, der Initialisierungscode jedoch nicht. Vielleicht habe ich etwas anderes verpasst. Unabhängig davon, die anderen beiden Lösungen funktionieren, also werde ich einen von ihnen verwenden. – davidscolgan