Normalerweise wird eine Django-Ansicht sieht etwa so aus:Macht das Anfrageobjekt für eine falsche Ansicht in Django optional?
def exciting_possibilities(request, optional_variable=None...):
ich den Fall, wo die optional_variable
in der URL über einen regulären Ausdruck erfasst wird. Es ist eine Benutzerkennung und nur übertragbar über GET als Teil eines E-Mail-Links aufgrund bestimmter geschäftlicher Umstände. Wenn es vorhanden ist, wählt my_view
dynamisch eine "Möglichkeit". Wenn es nicht vorhanden ist, stellt es ein identifizierendes Formular dar, damit der Benutzer die Informationen bereitstellen kann.
Lassen Sie uns sagen, dass der Benutzer jetzt POSTs die Informationen in das Formular (vereinfacht):
def identify_user(request):
e = ExampleUser(identifier=request.POST.get("optional_variable", None))
e.save()
Nun, da der Benutzer identifiziert wird, möchte ich exciting_posibilites
jetzt zurück gehen, aber natürlich kann ich nicht einfach anrufen :
return exciting_possibilities(optional_variable=e.identifier)
weil es keine Anfrage gibt (und das Generieren erfordert eine URL, die ich nicht habe).
Soll ich request
optional machen (mit =None
) und die "Möglichkeitsauswahl" -Logik in eine separate Funktion zerlegen?
Oder wenn ich von identify_user
zurückkomme, sollte ich vielleicht die ursprüngliche Anfrage bestehen (obwohl es ein POST ist), und die request.method
Prüflogik aus exciting_possibilites
herausnehmen?