2016-09-21 3 views
0

Ich erstelle ein Formular in Django durch Erweiterung der CreateView-Klasse und alles funktioniert gut.
Aber was ich nicht ganz verstehe ist, dass, wenn das Formular eingereicht wird, Webbrowser automatisch leitet mich zu der URL von Modell get_absolute_url() -Methode angegeben.
Ist es ein Standardverhalten, dass das Feld 'success_url' irgendwann durch eine von dieser Methode zurückgegebene URL zugewiesen wird?Was ist 'success_url' Variable Standardwert

+2

Nicht sicher, was Sie fragen. Die [Standardimplementierung von 'get_success_url()'] (https://github.com/django/django/blob/master/django/views/generic/edit.py#L143) auf CreateView ruft die Modelle "get_absolute_url" auf, wenn kein anderer Wert ist definiert. –

+0

Können Sie Ihren Ansichtscode anzeigen? – GwynBleidD

+0

@DanielRoseman Genau das ist der Fall. Sieht so aus, als hätte ich die Dokumentation nicht tief genug gegraben. – tomwyr

Antwort

3

Wenn Ihre Ansichtsklasse ein success_url-Attribut definiert, wird dies als Erfolgs-URL verwendet. Andernfalls wird die Methode get_absolute_url() des erstellten/bearbeiteten Objekts verwendet. Siehe Dokumentation here.

Wenn Sie also nicht zur absoluten URL des Objekts umleiten möchten, können Sie entweder success_url für die Klasse definieren oder die Klasse 'get_success_url()' neu definieren, wenn Sie sie genauer abstimmen müssen.

Verwandte Themen