Джанго: передача набора запросов на промежуточную страницу действий администратора? - PullRequest
1 голос
/ 15 марта 2012

Цель

Моя цель - написать действие «Экспорт выбранных в формате CSV» на сайте администратора Django.

После прочтения link1 Я думаю, что это хорошая идеяперенаправить мой запрос на экспорт в настраиваемое представление.

Вот вопрос: как передать текущий queryset на промежуточную страницу?

Метод в link1 не делаетне будет работать, если вы выберете все экземпляры (см. link2 ).

Мое текущее решение

Чтобы получить набор запросов на промежуточной странице, у меня есть два варианта:

  1. pickle queryset.query и отправьте его на промежуточную страницу с помощью ?qs={picked_qs_query}, затем заново создайте queryset на промежуточной странице.Это, на мой взгляд, является хорошим решением и делает промежуточную страницу идемпотентной.
  2. сохранить набор запросов в сеансе и загрузить его на промежуточную страницу.Это просто, но делает страницу недостаточно идемпотентной.

И, конечно, я могу просто игнорировать промежуточную страницу и возвращать содержимое CSV в действии «Экспорт выбранных в CSV», но действительно ли это хорошоидея?

Есть идея получше?

Спасибо, что прочитали этот вопрос: -)

Ответы [ 2 ]

5 голосов
/ 15 марта 2012

Просто используйте стандартное действие Django delete_selected в качестве шаблона. Он использует промежуточную страницу и делает это без сложного травления и тому подобного.

См .: https://github.com/django/django/blob/1.3.1/django/contrib/admin/actions.py

1 голос
/ 15 марта 2012

Есть ли проблема для создания QuerySet позже? Если нет, сделайте это так;

просмотреть часть:

  • написать пользовательский вид
  • создать QuerySet в представлении
  • добавить QuerySet в контекст шаблона
  • сделать это

Административная часть:

  • просто создайте действие и передайте необходимые параметры для создания QuerySet в представлении
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...