Что если success_url не имеет отношения к самой модели в Django - PullRequest
1 голос
/ 29 июня 2011

Если success_url определяется моделью, мы можем настроить общий вид, как показано ниже.

def get_success_url(self):
    return '/object/%s' % (self.object.id)

Но если success_url не имеет отношения к модели, например, мы хотим вернуться на страницу до того, как мы вошли на страницу формы. Это может быть страница сведений, страница списка или что-то еще. Могу ли я сохранить реферальный URL в форме? Любая идея приветствуется.

~ Hanson

1 Ответ

1 голос
/ 29 июня 2011

Я предполагаю, что страница успеха не всегда будет такой же, как иначе, вы можете просто включить URL-адрес с чем-то вроде reverse() в get_success_url. Для динамического перенаправления вы можете, как вы предложили, добавить URL-адрес в скрытом входе в форму или в строку запроса URL-адреса, на который отправляется форма (например, /myurl?next=/redirect-url/). Тогда вы можете сделать в своем классе просмотра что-то вроде:

# url is in the form in a hidden input 'next'
def get_success_url(self):
    return request.POST['next']

# url is in the query string ?next=xxxx
def get_success_url(self):
    return request.GET['next']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...