Добавить свои переменные в шаблоны админки. Изменить поведение view в админке django

14 ноября 2016 г. 12:40

Ниже я написал два примера, как можно изменить стандартное поведение представления в админке Django или как добавить свои данные в представление:

# admin.py
@admin.register(Order)
class OrderAdmin(admin.ModelAdmin):
    list_display = ('project', 'amount')
    list_filter = ('is_inner', )
    
    # 1-ый пример - ставим по умолчанию сортировку объекта по полю "is_inner__exact" в модели Order
    def changelist_view(self, request, extra_context=None):
        key = 'is_inner__exact'
        if key not in request.GET:
            q = request.GET.copy()
            q[key] = '0'
            request.GET = q
            request.META['QUERY_STRING'] = request.GET.urlencode()
        return super(OrderAdmin, self).changelist_view(request, extra_context=extra_context)

    # 2-ой пример - обрабатываем данные объекта, которого редактируем в админке
    def change_view(self, request, object_id, form_url='', extra_context=None):
        if object_id:
            extra_context = extra_context or {}
            obj = self.model.objects.get(id=int(object_id))
            extra_context.update({'warning_messages': some_method(obj)})
        return super(OrderAdmin, self).change_view(request, object_id, form_url, extra_context) 

Шаблон для 2-ого примера: orders/templates/orders/order/change_form.html

{% extends "admin/change_form.html" %} 

{% block object-tools %} 
   {% if object_id %} 
      {% if warning_messages %} 
         <div class="message_container">
         <h2>Сообщения</h2> 
         {% for message in warning_messages %} 
            <p>{{ message.full }}</p> 
         {% endfor %} </div> 
      {% endif %} 
   {% endif %}

   {{ block.super }} 
{% endblock %}

Оцените статью

5 из 5 (всего 1 оценка)

captcha
Отмеченные звёздочкой поля ( * ) являются обязательными для заполнения.

Спасибо за ваш отзыв!

После нажатия кнопки "Отправить" ваше сообщение будет доставлено мне на почту.

Автор статьи

Артём Мальцев

Веб-разработчик, владеющий знаниями языка программирования Python, фреймворка Django, системы управления содержимым сайта Django CMS, платформы для создания интернет-магазина Django Shop и многих различных приложений, использующих эти технологии.

Права на использование материала, расположенного на этой странице https://vivazzi.pro/ru/it/add-vars-and-change-view-admin/:

Разрешается копировать материал с указанием её автора и ссылки на оригинал без использования параметра rel="nofollow" в теге <a>. Использование:

Автор статьи: Артём Мальцев
Ссылка на статью: <a href="https://vivazzi.pro/ru/it/add-vars-and-change-view-admin/">https://vivazzi.pro/ru/it/add-vars-and-change-view-admin/</a>

Больше: Правила использования сайта

Представляю вашему вниманию книгу, написанную моим близким другом Максимом Макуриным: Секреты эффективного управления ассортиментом.

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

Комментарии: 0

Вы можете оставить комментарий как незарегистрированный пользователь.

Но зарегистрировавшись, вы сможете:

  • получать оповещения об ответах
  • просматривать свои комментарии
  • иметь возможность использовать все функции разработанных сервисов

Для комментирования от своего имени войдите или зарегистрируйтесь на сайте Vuspace

Отправить

На данный момент нет специального поиска, поэтому я предлагаю воспользоваться обычной поисковой системой, например, Google, добавив "vivazzi" после своего запроса.

Попробуйте

Выберите валюту для отображения денежных единиц