扩展django-admin-tools管理模板不会渲染标题

时间:2018-07-26 10:20:47

标签: python django django-admin-tools

尝试将自定义页面添加到管理员。我希望此页面具有与admindjango-admin-tools中的任何其他页面相同的标题和上层菜单。

除了欢迎部分,一切似乎都还可以。

这就是它的外观 enter image description here

这就是它的样子 enter image description here

如您所见,缺少右上部分。

这是我的基本模板:

{% extends "admin:admin/app_index.html" %}
{% load django_tables2 %}
{% block extrastyle %}
    {{ block.super }}
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/datepicker/0.6.5/datepicker.min.css">
{% endblock %}

{% block extrahead %}
    {{ block.super }}
    <script
            src="https://code.jquery.com/jquery-3.3.1.min.js"
            integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
            crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/datepicker/0.6.5/datepicker.min.js"></script>
    <script>
        $(document).ready(function () {
            $(".datepicker").datepicker(
                {
                    format: 'dd.mm.yyyy'
                }
            );
        })
    </script>
{% endblock %}

{% block content %}
    {{ block.super }}
    {% block render_home_table %}
        <section class="home_table_section">
            <button class="copy_table_to_cb">Clipboard</button>
            {% render_table home_table %}
        </section>
    {% endblock %}
    {% block render_away_table %}
        <button class="copy_table_to_cb">Clipboard</button>
        <section class="away_table_section">
            {% render_table away_table %}
        </section>
    {% endblock %}

{% endblock %}

如何解决此问题?我需要扩展另一个模板吗?

1 个答案:

答案 0 :(得分:0)

使用此代码:

 

{% if not is_popup %}
<!-- Header -->
<div id="header">
    <div id="branding">
    {% block branding %}{% endblock %}
    </div>
    {% block usertools %}
    {% if has_permission %}
    <div id="user-tools">
        {% block welcome-msg %}
            {% trans 'Welcome,' %}
            <strong>{% firstof user.get_short_name user.get_username %}</strong>.
        {% endblock %}
        / <a href="/analytics">View Analytics</a> /
        {% block userlinks %}
            {% if site_url %}
                <a href="{{ site_url }}">{% trans 'View site' %}</a> /
            {% endif %}
            {% if user.is_active and user.is_staff %}
                {% url 'django-admindocs-docroot' as docsroot %}
                {% if docsroot %}
                    <a href="{{ docsroot }}">{% trans 'Documentation' %}</a> /
                {% endif %}
            {% endif %}
            {% if user.has_usable_password %}
            <a href="{% url 'admin:password_change' %}">{% trans 'Change 
password' %}</a> /
            {% endif %}
            <a href="{% url 'admin:logout' %}">{% trans 'Log out' %}</a>
        {% endblock %}
    </div>
    {% endif %}
    {% endblock %}
    {% block nav-global %}{% endblock %}
</div>

之后,您需要将这些参数传递到呈现此页面的 views 中的return语句中。

from django.contrib.admin import AdminSite
class MyAdminSite(admin.AdminSite):
            pass
mysite = MyAdminSite()
return render(request, 'analytics.html',  {'user': request.user,'site_header': mysite.site_header,'has_permission': mysite.has_permission(request), 'site_url': mysite.site_url})