Django admin / doc / views / все пусто или не работает - PullRequest
2 голосов
/ 21 октября 2010

Я пытаюсь использовать встроенную функцию Django для администрирования документов, чтобы упростить написание шаблонов. Предположительно, если вы перейдете в / admin / docs / views, вы должны получить документацию для каждого представления в вашем приложении. Я вижу список, но ни одна из ссылок не работает:

-) Любое перечисленное представление, относящееся к моему приложению, просто переходит на пустую страницу без имени, кроме названия представления в качестве заголовка.

-) Все виды, связанные с администратором, дают мне ошибки Django 404, когда я нажимаю на них, , за исключением тех, которые связаны с самой документацией. Связанные с документами ссылки также дают мне пустые страницы. (т. е. нажатие / admin / doc / filters дает пустую страницу с заголовком «django.contrib.admindocs.views.template_filter_index», но нажатие / admin / auth / user дает мне ошибку Django 404

Ошибки 404 заставляют меня подозревать, что мой URLconf неверен, но все, что я делал, это раскомментировал встроенные строки. Соответствующие разделы гласят:

# Uncomment the admin/doc line below to enable admin documentation:
(r'^admin/doc/', include('django.contrib.admindocs.urls')),

# Uncomment the next line to enable the admin:
(r'^admin/', include(admin.site.urls)), 

И я понятия не имею, что делать с пустыми страницами. Нужно ли где-то предоставлять дополнительную мета-информацию, как я знаю, вам нужно предоставить get_absolute_url для моделей, чтобы некоторые функции администратора работали правильно?

Даже если никто не знает ответа, любая документация по функции админ-документации была бы полезна - я был в Google повсюду (и искал StackOverflow), и эта функция кажется очень мало документированной.

Спасибо!

Ответы [ 2 ]

1 голос
/ 27 июля 2011

Вам необходимо добавить 'django.contrib.admindocs' к вашему INSTALLED_APPS в settings.py.Это должно быть уже там и закомментировано.Хотя было бы неплохо, если бы комментарий в urls.py упомянул это ... Источник .

0 голосов
/ 11 ноября 2010

Я никогда не просматривал страницы с административными документами Views - у меня никогда не было необходимости. B4 но вы правы, они, кажется, лишены потенциальных возможностей.

Если вы предоставите своим представлениям функции строк документации (документации), этот контент появится на ваших "пустых страницах".

Большинство - нет, все - представлений сайтов администраторов на самом деле представляют собой методы admin.sites.AdminSite. Я оглянулся вокруг, и вид 40, который использует декоратор, также страдает от 404.

Запускается представление, отвечающее за детали просмотра:

def view_detail(request, view):
    if not utils.docutils_is_available:
        return missing_docutils_page(request)

    mod, func = urlresolvers.get_mod_func(view)
    try:
        view_func = getattr(import_module(mod), func)
    except (ImportError, AttributeError):
        raise Http404
    title, body, metadata = utils.parse_docstring(view_func.__doc__)
    ...

Вы можете видеть, что он пытается импортировать представление, чтобы получить от него информацию; если представление на самом деле является декоратором (который, вероятно, использовал внутреннюю функцию для переноса реального представления), оно не сможет импортировать его. Например, если вы выполните from django.contrib.admin.sites import index в оболочке django, вы получите ImportError, тогда как django.contrib.admin.site.index (обратите внимание на единственное число site) это:

<bound method AdminSite.index of <django.contrib.admin.sites.AdminSite object at 0x...>>

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

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