Перенаправление Django Rest Framework после успешного POST

Есть ли способ перенаправить форму POST на определенную страницу, если конечная точка вернет успех?

В моем конкретном случае я использую django-rest-auth для управления аутентификацией пользователей. , а конечная точка входа (/rest-auth/login/) возвращает JSON с ответом. Я хочу перенаправить пользователя на его панель управления, если аутентификация прошла успешно.

РЕДАКТИРОВАТЬ: Насколько я понимаю, REST API предназначен только для бэкэнда. Если я хочу установить перенаправление после любого сообщения формы, мне нужно найти способ только с моим интерфейсным приложением. Я прав ?

В этом случае Django является хорошим выбором для разработки внешнего интерфейса? Я видел много тем, где упоминается AngularJS для создания внешнего интерфейса. Является ли хорошей идеей создание клиентского приложения с помощью JS (я имею в виду, что для одностраничного веб-API нет возможности навигации назад и вперед, я думаю, что это не удобный способ навигации)?

Если я создам свой интерфейс с Django, должен ли я написать свое собственное представление, вызвать конечную точку бэкэнда в этом представлении, обработать результат и отправить HTTPRequest (например) из этого представления? Я не очень понимаю, где выигрыш с этим методом.


person Ben    schedule 19.08.2016    source источник


Ответы (2)


Ну, ответ на ваш вопрос не может быть только одним решением.

У вас есть два пути:

Все зависит от ваших потребностей.

person turkus    schedule 19.08.2016

Если я хочу установить перенаправление после любого сообщения формы, мне нужно найти способ только с моим интерфейсным приложением. Я прав ?

Да, вам нужно сделать перенаправление на интерфейсе.

В этом случае Django является хорошим выбором для разработки внешнего интерфейса?

Django — это фреймворк для создания веб-серверов, и он не имеет ничего общего с интерфейсом.

Я имею в виду, что для одностраничного веб-API нет возможности навигации назад и вперед, я думаю, что это не удобный способ навигации)

Там есть. Например, вот ui-router для angularjs. Вот пример реальной рабочей страницы. Как вы можете видеть, URL-адрес изменяется соответствующим образом, просто ведет себя как традиционные статические HTML-страницы, отображаемые сервером.

Когда браузер отправляет запрос на ваш сервер, django вызывает соответствующую функцию представления для отображения представления, которое представляет собой всего лишь html-файл, и отправляет его обратно в браузер. Затем браузер отображает страницу. Помимо этого, django больше не имеет ничего общего с html-файлом. Работа браузера заключается в том, чтобы анализировать html и отображать его соответствующим образом.

Итак, чтобы было ясно, django не для интерфейса. Для вашего веб-приложения вы наверняка можете использовать angularjs. Однако, если вы действительно не хотите писать много кода javascript, я предлагаю взглянуть на Polymer (polymer-project.org, о моя маленькая репутация), который действительно прост в использовании.

person Carl Cui    schedule 19.08.2016