Я хотел бы попросить некоторую помощь по этому вопросу.django admin, расширяющий администратор с пользовательскими представлениями
Я следил за this, чтобы добавить мнение к моему администратору.
Я использую тот же код, что сайт имеет и я получаю сообщение об ошибке:
Reverse for 'app_list' with arguments '()' and keyword arguments '{'app_label': 'reports'}' not found.
admin/my_view
работает нормально, но если я пытаюсь получить доступ к другим страницам в админке, такие, как индексная страница Я получаю ошибку
Вот код:
#someapp/admin.py
from django.conf.urls import patterns
from django.contrib import admin
from django.http import HttpResponse
def my_view(request):
return HttpResponse("Hello!")
def get_admin_urls(urls):
def get_urls():
my_urls = patterns('',
(r'^my_view/$', admin.site.admin_view(my_view))
)
return my_urls + urls
return get_urls
admin_urls = get_admin_urls(admin.site.get_urls())
admin.site.get_urls = admin_urls
Я использую Django 1.8.2, Python 2 .7
также, как лучше всего добавить какой-либо вид или контекст на индексной странице администратора?
UPDATE
Я попытался ответить Антуана Pinsard и попытался это:
#admin.py
from django.contrib.admin import AdminSite
class MyAdminSite(AdminSite):
def get_urls(self):
from django.conf.urls import url
urls = super(MyAdminSite, self).get_urls()
urls += [
url(r'^my_view/$', self.admin_view(self.my_view))
]
return urls
def my_view(self, request):
return HttpResponse("Hello!")
admin_site = MyAdminSite()
И замена urls.py-х url(r'^admin/', include(admin.site.urls)),
к url(r'^admin/', include(admin_site.urls)),
и получение:
Reverse for 'app_list' with arguments '()' and keyword arguments
след вызовов TRACEBACK:
Request Method: GET
Request URL: http://localhost:8000/@dmin/
Django Version: 1.8.2
Python Version: 2.7.10
Installed Applications:
('grappelli',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.sessions.models',
'frontend',
'file_maintenance',
'reports',
'transactions',
'admin_reorder',
'admin_notifications',
'django_twilio',
'daterange_filter')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.models.User',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.middleware.security.SecurityMiddleware',
'admin_reorder.middleware.ModelAdminReorder')
Traceback:
File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in get_response
157. response = middleware_method(request, response)
File "C:\Python27\lib\site-packages\admin_reorder\middleware.py" in process_template_response
134. self.init_config(request, app_list)
File "C:\Python27\lib\site-packages\admin_reorder\middleware.py" in init_config
21. admin_index = admin.site.index(request)
File "C:\Python27\lib\site-packages\django\views\decorators\cache.py" in _wrapped_view_func
57. response = view_func(request, *args, **kwargs)
File "C:\Python27\lib\site-packages\django\contrib\admin\sites.py" in index
438. current_app=self.name,
File "C:\Python27\lib\site-packages\django\core\urlresolvers.py" in reverse
579. return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs)))
File "C:\Python27\lib\site-packages\django\core\urlresolvers.py" in _reverse_with_prefix
496. (lookup_view_s, args, kwargs, len(patterns), patterns))
Exception Type: NoReverseMatch at /@dmin/
Exception Value: Reverse for 'app_list' with arguments '()' and keyword arguments '{'app_label': 'django_twilio'}' not found. 0 pattern(s) tried: []
Просьба предоставить полную отслеживающий. Также обратите внимание, что шаблоны устарели. Вы должны использовать список 'url'. –
Я обновил сообщение –
Если у кого-то еще есть проблема с этим - вы можете проверить это сообщение также https://stackoverflow.com/questions/4877335/how-to-use-custom-adminsite-class. Это немного сложно, но не позволяет переопределить экземпляр AdminSite над проектом. – alexche8