Nic*_*ner 11 django django-admin
我在Ubuntu 10.10上使用Django 1.2.4.我正在尝试覆盖admin模块的index.html模板.我一直在遵循这些指示.我也看了这个问题,但我仍然遇到困难.
说明说admin在模板目录中创建一个目录:
templates/
admin/
index.html
Run Code Online (Sandbox Code Playgroud)
我想覆盖中的一个块index.html.(实际上,我想做的就是在最后附加一些文字.有没有比复制/粘贴整个块并更改它更简单的方法?)(更新:看起来{{block.super}}可能会有帮助.)
为了表明我压倒一切,我把它放在了我的首位index.html:
{% extends "admin/index.html" %}
Run Code Online (Sandbox Code Playgroud)
当然,这会导致堆栈溢出(来自终端):
Exception RuntimeError: 'maximum recursion depth exceeded in __subclasscheck__' in <type 'exceptions.RuntimeError'> ignored
Run Code Online (Sandbox Code Playgroud)
这样做的正确方法是什么?我在链接问题的答案上尝试了一个符号链接,但结果如下:
me@mycomp:~/foo$ sudo ln -s /usr/local/lib/python2.6/dist-packages/django/contrib/admin/templates/ django_admin
[sudo] password for me:
ln: creating symbolic link `django_admin': Protocol error
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
使用额外的模板文件夹修改settings.py,例如:
TEMPLATE_DIRS = (
# Put strings here, like "/home/html/django_templates".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
"/home/mysite/webapps/django/myproject/templates",
"/home/mysite/webapps/django/lib/python2.7/django/", # extra folder
)
Run Code Online (Sandbox Code Playgroud)
然后在myproject/templates/admin中添加你自己的index.html,如:
{% extends "contrib/admin/templates/admin/index.html" %}
{% block branding %}
<h1 id="site-name">Administration for TheLittleButtonCo</h1>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
显然,变化是可能的.这适用于Django 1.3.1 final
不确定你是否找到了答案,但你需要改变
{% extends "admin/index.html" %}
Run Code Online (Sandbox Code Playgroud)
到
{% extends "admin/base_site.html" %}
Run Code Online (Sandbox Code Playgroud)
因为这就是原始 index.html 页面覆盖的内容。因为 Django 系统在使用默认的 admin 文件夹之前会搜索您的 templates 文件夹,所以在这种情况下它会在您的模板中找到 admin/index.html,然后它会尝试使用扩展来扩展自身(因此会出现递归错误)。
作为参考,您base_site.html也可以自定义模板,它扩展了base.html. 最好的办法是复制原件:
/usr/local/lib/python2.6/dist-packages/django/contrib/admin/templates/
Run Code Online (Sandbox Code Playgroud)
并将其粘贴到模板文件夹中作为起点
| 归档时间: |
|
| 查看次数: |
9914 次 |
| 最近记录: |