【问题标题】:Can't extend templates correctly - missing elements from parent template无法正确扩展模板 - 父模板中缺少元素
【发布时间】:2017-02-20 09:34:32
【问题描述】:

我正在尝试创建两个我想在 Django 管理员中使用的表。我知道我必须扩展什么模板,但我不知道为什么缺少一些元素。例如注销、欢迎文本等。我​​想在那里有普通的 Django 管理标题。

这是一个常规的 django 管理标题 - 右侧(带有主题,所以有绿色):

这是扩展模板的标题: 我附上了我的模板和管理员 base.html:

{% extends "admin/base.html" %}
{% load static %}
{% load i18n %}
{% load render_table from django_tables2 %}
{% block title %}
    Admin Pairing
{% endblock %}
{% block extrahead ..... endblock %}
{% block branding %}{% trans "Pairing Rides" %}{% endblock %}
{% block content %}
    <h2>{% trans "Candidate pair reservations" %}</h2>
    <br>
    {% render_table table %}
    <hr>
    <h2>{% trans "Existing pair reservations" %}</h2>
    {% render_table table_existing %}
    <div class="overlay">
        <div id="loading-img"></div>
    </div>

{% endblock %}

这是我扩展的模板:

{% load i18n admin_static %}<!DOCTYPE html>
{% get_current_language as LANGUAGE_CODE %}{% get_current_language_bidi as LANGUAGE_BIDI %}
<html lang="{{ LANGUAGE_CODE|default:"en-us" }}" {% if LANGUAGE_BIDI %}dir="rtl"{% endif %}>

<head>
<title>{% block title %}{% endblock %}</title>
<link rel="stylesheet" type="text/css" href="{% block stylesheet %}{% static "admin/css/base.css" %}{% endblock %}" />
{% block extrastyle %}{% endblock %}
{% if LANGUAGE_BIDI %}<link rel="stylesheet" type="text/css" href="{% block stylesheet_rtl %}{% static "admin/css/rtl.css" %}{% endblock %}" />{% endif %}
{% block extrahead %}{% endblock %}
{% block blockbots %}<meta name="robots" content="NONE,NOARCHIVE" />{% endblock %}

</head>

{% load i18n %}

<body class="{% if is_popup %}popup {% endif %}{% block bodyclass %}{% endblock %}"
  data-admin-utc-offset="{% now "Z" %}">

<!-- Container -->
<div id="container">

    {% 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 %}
            {% 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>
    <!-- END Header -->
    {% block breadcrumbs %}
    <div class="breadcrumbs">
    <a href="{% url 'admin:index' %}">{% trans 'Home' %}</a>
    {% if title %} &rsaquo; {{ title }}{% endif %}
    </div>
    {% endblock %}
    {% endif %}

    {% block messages %}
        {% if messages %}
        <ul class="messagelist">{% for message in messages %}
          <li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message|capfirst }}</li>
        {% endfor %}</ul>
        {% endif %}
    {% endblock messages %}

    <!-- Content -->
    <div id="content" class="{% block coltype %}colM{% endblock %}">
        {% block pretitle %}{% endblock %}
        {% block content_title %}{% if title %}<h1>{{ title }}</h1>{% endif %}{% endblock %}
        {% block content %}
        {% block object-tools %}{% endblock %}
        {{ content }}
        {% endblock %}
        {% block sidebar %}{% endblock %}
        <br class="clear" />
    </div>
    <!-- END Content -->

    {% block footer %}<div id="footer"></div>{% endblock %}
</div>
<!-- END Container -->

</body>
</html>

为什么在我的情况下没有这样的标题?

例如:

<strong>{% firstof user.get_short_name user.get_username %}</strong>

有条件{% if has_permission %} 应该为 True,因为我使用超级用户帐户打开此页面。

编辑:

我发现has_permissionFalse。不知道为什么。

【问题讨论】:

    标签: django django-templates django-admin


    【解决方案1】:

    我刚才遇到了同样的问题,“has_permission”是一个变量,然后从视图传递到模板。 ;)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-09
      • 2012-07-03
      相关资源
      最近更新 更多