我正在覆盖网站的django管理员。
在defult索引页面中,他们有app_list
变量,其中包含所有应用程序,然后是其模型。
但其他观点app_list
不可用,但我希望所有观点都可以使用,以便我可以在侧边栏上点击
在此档案中
https://github.com/django/django/blob/master/django/contrib/admin/sites.py#L382
他们有像这样的代码
app_list = list(six.itervalues(app_dict))
但是如何在change_list页面中创建那些可用的
答案 0 :(得分:2)
我知道已经晚了7年,但是我想指出一下,因为我遇到过您的情况。如果您的目的是获取所有应用程序(应用程序列表)及其各自的型号,则可以使用available_apps
代替app_list
,因为available_apps
可以在所有管理页面中访问(参见下面的site.py代码)
def each_context(self, request):
"""
Return a dictionary of variables to put in the template context for
*every* page in the admin site.
For sites running on a subpath, use the SCRIPT_NAME value if site_url
hasn't been customized.
"""
script_name = request.META['SCRIPT_NAME']
site_url = script_name if self.site_url == '/' and script_name else self.site_url
return {
'site_title': self.site_title,
'site_header': self.site_header,
'site_url': site_url,
'has_permission': self.has_permission(request),
'available_apps': self.get_app_list(request), #this one
'is_popup': False,
}
答案 1 :(得分:0)
覆盖app_index.html
{% extends "admin/index.html" %}
{% load i18n %}
{% load url from future %}
{% if not is_popup %}
{% block breadcrumbs %}
<div class="breadcrumbs">
<a href="{% url 'admin:index' %}">{% trans 'Home' %}</a>
›
{% for app in app_list %}
{% blocktrans with app.name as name %}{{ name }}{% endblocktrans %}
{% endfor %}
</div>
{% endblock %}
{% endif %}
{% block sidebar %}{% endblock %}