我知道这个被问了几遍,但我基本上已经完成了关于堆栈溢出的所有帖子,但仍然无法使其工作。现在我只是尝试简单地更改管理站点标题。我有以下内容:
#base_site.html
{% extends "admin/base_site.html" %}
{% block title %}{{ title }} | {{ site_title|default:_('NEW TITLE') }}{% endblock %}
{% block branding %}
<h1 id="site-name"><a href="{% url 'admin:index' %}">{{ site_header|default:_('NEW TITLE') }}</a></h1>
{% endblock %}
{% block nav-global %}{% endblock %}
我试着将其放入
my_site /模板/管理/ base_site.html,
my_site / templates / admin / my_app / base_site.html和
my_site / my_app / templates / admin / base_site.html,
但这些都不起作用。
settings.py:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
'loaders': [
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
],
},
},
]
我也试过直接更改django \ contrib \ admin \ templates \ admin \ base_site.html,但仍然没有任何反应。
我现在非常沮丧,绝对可以使用一些帮助,谢谢
就像这里一样,最顶端的白条显示&#34;#base_site.html !! @#&#34;这是我放在my_site / templates / admin / base_site.html作为评论的机会。所以它有点工作,但我仍然不明白为什么我不能改变网站标题。
答案 0 :(得分:4)
首先打开您的settings.py并添加模板文件夹:
TEMPLATES = [
{
'DIRS': [
'/path/to/your/django-project/templates', # Absolute Path
# os.path.join(BASE_DIR, 'templates') # Relative Path
],
...
然后将文件base_site.html移动到以下目录。 将结构保留在文件系统上非常重要。
/path/to/your/django-project/templates/admin/base_site.html
base_site.html的内容:
{% extends "admin/base_site.html" %}
{% block title %}{{ title }} | {{ site_title|default:_('NEW TITLE') }}{% endblock %}
{% block branding %}
<h1 id="site-name"><a href="{% url 'admin:index' %}">Your new Title</a></h1>
{% endblock %}
{% block nav-global %}{% endblock %}
Django Documentation - Overriding Admin Site
希望有所帮助。
答案 1 :(得分:3)
使用my_site / my_app / templates / admin / base_site.html
将您的应用放在之前定义此模板的位置 &#39; django.contrib.admin&#39;,INSTALLED_APPS
答案 2 :(得分:2)
所以你应该删除包括花括号,然后写下你想要的文本。
Remove: `{{ site_title|default:_('NEW TITLE') }}` Write: NEW TITLE Remove: `{{ site_header|default:_('NEW TITLE' }}` Write: NEW TITLE
还要确保将文件夹(templates / admin)放在项目的根目录中。 root目录是所有app文件夹和manage.py文件的容器。
换句话说,您要创建的“templates”文件夹应与manage.py文件位于同一级别。
您的文件夹结构应如下所示:
mysite/ templates/ admin/ base_site.html manage.py mysite/ __init__.py settings.py urls.py wsgi.py ... ...
答案 3 :(得分:1)
我不确定我是否理解正确。但是您可以通过以下操作轻松更改标题:
在“ urls.py”文件中
from django.contrib import admin
urlpatterns = [
path('admin/', admin.site.urls),
.......
]
admin.site.site_header = 'My New Title'
admin.site.site_title = 'My New Title'
然后它将为您完成工作。
答案 4 :(得分:0)
您应该从模板中删除 site_title 。 INSTALLED_APPS中的应用程序顺序无关紧要。
{% extends "admin/base_site.html" %}
{% block title %}{{ title }} | {{ _('NEW TITLE') }}{% endblock %}
{% block branding %}
<h1 id="site-name">
<a href="{% url 'admin:index' %}">
{{ _('NEW TITLE') }}
</a>
</h1>
{% endblock %}
{% block nav-global %}{% endblock %}
答案 5 :(得分:0)
要更改Django Admin网站标题,您可以在Django应用的admin.py
中添加以下两行:
from django.contrib import admin
# change Django admin title
admin.site.site_title = 'My Blog Admin'
# change Django admin site header
admin.site.site_header = 'My Blog Admin'