Phi*_*hil 15 django django-admin
我想在django的管理索引页面中定义一个自定义应用程序列表,因为我希望以特定顺序显示应用程序,而不是默认的字母顺序.拖网浏览各种SO帖子似乎还不可能在任何明显的地方声明所需的应用程序顺序(例如admin.py,models.py).
现在,我可以看到django admin的index.html文件包含以下语句:
{% for app in app_list %}
# do stuff with the app object
Run Code Online (Sandbox Code Playgroud)
所以我想改变它以使用一个名为my_app_list的自定义列表对象.在python中,我将按以下方式执行此操作:
from django.db.models import get_app
my_app_list = [get_app('myapp1'), get_app('myapp2'), ..., get_app('django.contrib.auth')]
for app in my_app_list
...
Run Code Online (Sandbox Code Playgroud)
那么我的问题是,如何将上面前两行的等价物编码到我的index.html文件的本地副本中?
或者,或者,我应该插入哪些python源文件,以便变量my_app_list在index.html中可用.
提前致谢.
菲尔
子类django.contrib.admin.site.AdminSite().覆盖.index()方法,并执行以下操作:
class MyAdminSite(django.contrib.admin.site.AdminSite):
def index(self, request, extra_context=None):
if extra_context is None:
extra_context = {}
extra_context["app_list"] = get_app_list_in_custom_order()
return super(MyAdminSite, self).index(request, extra_context)
Run Code Online (Sandbox Code Playgroud)
实例化此子类的实例my_admin_site = MyAdminSite(),将模型附加到它(使用通常的my_admin_site.register()),并将其附加到URLconf; 应该这样做.
(我没有试过这个,我基于我对AdminSite源码的阅读.)
| 归档时间: |
|
| 查看次数: |
10236 次 |
| 最近记录: |