2016-10-28 1 views
0

Итак, я создаю страницу в своем проекте Django, которая по существу просто использует заголовок и нижний колонтитул администратора Django. У меня есть папка с шаблонами в корне моего проекта, где у меня есть base.html.Содержимое тега шаблона Django отсутствует при расширении шаблона базы приложений администратора

/templates/admin/base.html

{% load i18n static %}<!DOCTYPE html> 
 
{% load static %} 
 
{% 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" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous"> 
 
<link rel="stylesheet" type="text/css" href="{% static 'js-stack/assets/css/spark-styles.css' %}" /> 
 
<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 %} 
 
      /<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> 
 
    <!-- 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 style="padding: 10px 40px;" id="footer"><img src="{% static 'wifispark-logo.png' %}"></div>{% endblock %} 
 
</div> 
 
<!-- END Container --> 
 

 
</body> 
 
</html>

Так что это копия администратора приложения base.html, но с несколькими modificatio0ns, таких как изображение в сноске , Это все работает как ожидается, когда я запишусь в приложение администратора. У меня также есть другое приложение под названием «аналитика» внутри моего проекта. Ниже приведен шаблон для него, где я расширил admin/base.html.

{% extends "admin/base.html" %} 
 
{% load static %} 
 
{% block content %} 
 
<div class="container-fluid"> 
 
</div> 
 
{% endblock content %}

Теперь, когда я просматривать мою страницу аналитики он загружает со всем ожидаемыми колонтитулами стайлингом от администратора/base.html, но есть содержание отсутствует, например название администратор приложения и ссылки меню, оба из которых извлекаются из тегов шаблонов админ-приложений. Может ли кто-нибудь пролить свет на то, что я делаю неправильно или пропажу?

Большое спасибо, Джеймс

ответ

1

На ваш взгляд, тот, который делает страницу аналитики не забудьте передать пользователю, site_header, has_permission и SITE_URL в качестве параметров.

Эти параметры могут быть извлечены так:

from django.contrib.admin import AdminSite 
class MyAdminSite(admin.AdminSite): 
      pass 
mysite = MyAdminSite() 

И затем вернуть их во время рендеринга шаблона:

def get(self, request): 
    return render(request, 'analytics.html', {'user': request.user,'site_header': mysite.site_header,'has_permission': mysite.has_permission(request), 'site_url': mysite.site_url}) 

Надежда, что помогает