Он вызывается представлениями на основе классов, такими как CreateView
[Django -doc] и UpdateView
[Django -doc] и другие представления, использующие ModelFormMixin
mixin [Django -doc] .
Этот миксин переопределяет get_success_url(..)
метод [Django -doc] следующим образом:
Определяет URL-адрес для перенаправления при успешной проверке формы. Возвращает django.views.generic.edit.ModelFormMixin.success_url
, если оно предоставлено; в противном случае попытается использовать get_absolute_url()
объекта .
Так что если вы не предоставите атрибут success_url
в своем представлении или не переопределите get_success_url
метод зрения самостоятельно. Django будет использовать метод get_absolute_url()
объекта, который вы построили, обновили и т. Д. c. в представлении. Это реализовано как [GitHub] :
def get_success_url(self):
"""Return the URL to redirect to after processing a valid form."""
if self.success_url:
url = self.success_url.format(**self.object.__dict__)
else:
try:
url = <b>self.object.get_absolute_url()</b>
except AttributeError:
raise ImproperlyConfigured(
"No URL to redirect to. Either provide a url or define"
" a get_absolute_url method on the Model.")
return url
URL-адрес succes используется для перенаправления в случае успешного POST-запроса , Например, форма, которую вы заполнили в CreateView
, является действительной и привела к созданию записи в базе данных.