Как расширить админский вид django? - PullRequest
9 голосов
/ 21 октября 2011

Я хочу отобразить дополнительную боковую панель в моем индексе администратора django.Я создал templates/admin/index.html, и он появляется.Теперь мне нужны данные из модели.Для этого я создал индексную функцию в файле admin/views.py

def index(request):
    var = 'var'
    return render_to_response('admin/index.html', {'var': var})

Без этой функции у меня ошибка ViewDoesNotExist.

Однако шаблон не реагирует на эту переменную образца 'var'.Кроме того, мое приложение не отображается в индексе.У меня есть только приложение авторизации.

Я думаю, что я перезаписываю функцию индекса из представления администратора.Как правильно переписать эту функцию?

Ответы [ 2 ]

8 голосов
/ 21 октября 2011

Вместо того, чтобы полностью перезаписывать представление, вы можете добавить логику к представлениям в вашем классе ModelAdmin (admin.py):

https://docs.djangoproject.com/en/dev/ref/contrib/admin/#other-methods

так например:

class MyAdmin(admin.ModelAdmin)
    ...
    def add_view(self, request, form_url='', extra_context=None):
        # Do some extra queries that will get passed to the template
        c = {'x':SomeModel.objects.all()}
        super(MyAdmin, self).add_view(request, extra_context=c)
2 голосов
/ 21 октября 2011

Рассмотрите возможность использования инструментов администратора django https://bitbucket.org/izi/django-admin-tools/wiki/Home

, тогда вы получите такие команды, как manage.py customdashboard, manage.py custommenu и т. Д.

У него даже есть хорошая функция закладок для быстрого перехода к определеннымобъекты или страницы списка.

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