无法正确扩展模板 - 父模板中缺少元素

Posted

技术标签:

【中文标题】无法正确扩展模板 - 父模板中缺少元素【英文标题】: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。不知道为什么。

【问题讨论】:

【参考方案1】:

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

【讨论】:

以上是关于无法正确扩展模板 - 父模板中缺少元素的主要内容,如果未能解决你的问题,请参考以下文章

django 模板标签缺少 1 个必需的位置参数:值

ElasticElastic缺少xpack无法创建模板 unknown setting index.lifecycle.name index.lifecycle.rollover_alias

[关闭]之前缺少模板参数

缺少 Silverlight“业务应用程序”模板

Vue.js 3 s-s-r - 客户端水合期间缺少模板或渲染功能

使用模板时缺少默认构造函数