[python] Как добавить кнопку рядом с кнопкой Добавить пользователя в Django Admin Site



0 Answers

Хотя другие ответы полностью верны, я думаю, важно отметить, что совершенно необязательно добавлять кнопку, чтобы получить такое поведение. Вы можете использовать действия администратора, как и для действия make_published .

Это как преимущество не требовать переопределения какого-либо шаблона и, таким образом, предотвращает потенциальные проблемы при обновлении версии django (поскольку шаблоны администратора могут меняться, а изменения могут быть несовместимы с тем, как вы его перевернули).

import csv

from django.http import HttpResponse
from django.utils import timezone

def export_as_csv(modeladmin, request, queryset):
    opts = modeladmin.model._meta
    filename = format(timezone.now(), "{app}_{model}-%Y%m%d_%H%M.csv").format(
        app=opts.app_label, model=opts.model_name)

    response = HttpResponse(content_type='text/csv')
    response['Content-Disposition'] = 'attachment; filename="{}"'.format(filename)

    writer = csv.writer(response)
    field_names = [f.get_attname() for f in opts.concrete_fields]
    writer.writerow(field_names)
    for obj in queryset.only(*field_names):
        writer.writerow([str(getattr(obj, f)) for f in field_names])

    return response

Для этого выполняются действия администратора, добавление пользовательской кнопки на один шаг ближе к «чрезмерной настройке», а это означает, что, вероятно, время для написания ваших собственных просмотров.

У администратора много перехватов для настройки, но остерегайтесь использовать эти перехватчики исключительно. Если вам нужно предоставить более ориентированный на процесс интерфейс, который абстрагирует детали реализации таблиц и полей базы данных, то, вероятно, настало время написать свои собственные представления.

Цитата из вступительного параграфа документации Django Admin

Question

Я работаю над проектом Django, где мне нужно извлечь список пользователей, чтобы преуспеть на экране пользователей Django. Я добавил переменную actions в свой класс Sample для получения CheckBox перед идентификатором каждого пользователя.

class SampleClass(admin.ModelAdmin):
    actions =[make_published]

Действие make_published уже определено. Теперь я хочу добавить еще одну кнопку рядом с кнопкой Add user , как показано на рис. , Но я не знаю, как я могу добиться этого, используя новый шаблон. Я хочу использовать эту кнопку для печати выбранных пользовательских данных. Спасибо, пожалуйста, направляйте меня.




Related