2015-08-28 1 views
1

Я хочу добавить функцию для загрузки отфильтрованных данных на странице администратора в виде файла csv. Что я хочу достичь, так это возможность загружать отфильтрованные данные без необходимости их выбирать, потому что сложно выбрать несколько страниц данных.django 1.8 Действия администратора - как автоматически выбрать все

Вот мой код:

def download_csv(modeladmin, request, queryset): 
    for obj in queryset: 
     # write to the response... 

@admin.register(MyTable) 
class MyTableAdmin(admin.ModelAdmin): 
    actions = (download_csv,) 
    download_csv.short_description = 'Download as csv' 

    def changelist_view(self, request, extra_context=None): 
     post = request.POST.copy() 
     if admin.helpers.ACTION_CHECKBOX_NAME not in post: 
      post.update({admin.helpers.ACTION_CHECKBOX_NAME:None}) 
      request._set_post(post) 
     return super(VariantAdmin, self).changelist_view(request, extra_context) 

Код changelist_view подавит проверки, который выбран ничего. Код, указанный выше, не будет загружать данные, так как запрос остается пустым. Я знаю, что могу реализовать фильтр в моем методе download_csv, используя параметры POST, но это высокий уровень обслуживания, поскольку в любое время, когда я хочу добавить фильтр, мне нужно его обновить. Есть ли более простой способ выбрать все отфильтрованные данные?

ответ

0

Не знаете, почему вы считаете сложным выбрать «несколько страниц данных».

При выборе всех элементов на текущей странице (например, с помощью флажка, помещенного в заголовок таблицы) django предлагает вам «Выбрать все» на всех страницах. Ссылка, чтобы сделать это, показана сразу после выбора действий.

+0

Я знаю, но я создаю интерфейс для нетехнических людей, которые не могут понять это :) – max

Смежные вопросы