Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 26, 2014 13:24:36

azazell00
Зарегистрирован: 2014-10-26
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с наследованием шаблонов

Я в тупике, идей ноль проблема осталась. Есть 2 простеньких шаблона “base.html” :

<!DOCTYPE html>
<html>
    <head>
    {% load staticfiles %}
        <link rel="stylesheet" href="{% static 'resume/stylesheet.css'%}"/>
        <title>{% block title %}{% endblock %}</title>
    </head>
    <body>
        <div id="header"> some info </div>
        {% block content %}{% endblock %}
    </body>
</html>

и унаследованный от него “person.html”:

{% extends "base.html" %}
{% load staticfiles %}
{% block title %}Personal info{% endblock %}
{% block content %}
<div>{{person.first_name}}</div>
{% endblock %}

Проблема заключается в том что когда я использую person.html то css стили не подтягиваются а также не отображается строка

<div id=“header”> some info </div>

Отображается только значение {{person.first_name}} Я подозреваю что по каким то причинам не срабатывает наследование шаблонов. Нашел похожую проблему на stackoverflow, там она решилась добавлением / в начало путя к цсс файлу. Мне это не помогло.

view
def person_view(request):
    person = get_object_or_404(Person, pk=1)
    return render(request, "resume/person.html", {'person': person})

url:
url(r'^$', views.person_view, name='person'),

page source code:

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <title>Personal infoSite Name</title>
        <meta http-equiv="X-UA-Compatible" content="chrome=IE7" />
        <meta name="viewport" content="initial-scale=1.0, width=device-width"/>
        <meta name="apple-mobile-web-app-capable" content="yes"/>
        <meta name="apple-mobile-web-app-status-bar-style" content="black" />
        <link rel="stylesheet" href="/static/css/screen.css" media="screen, projection"/>
    </head>
    <body id="" class="">
<div>Volodymyr</div>
    </body>
</html>

Если же я меняю во view шаблон на base.html:
def person_view(request):
    person = get_object_or_404(Person, pk=1)
    return render(request, "resume/base.html", {'person': person})
то цсс стили подтягиваются, и на выходе я получаю:

<!DOCTYPE html>
<html>
    <head>
        <link rel="stylesheet" href="/static/resume/stylesheet.css"/>
        <title></title>
    </head>
    <body>
        <div id="header"> some info </div>
    </body>
</html>

Офлайн

#2 Окт. 26, 2014 17:41:22

nnmware
Зарегистрирован: 2012-07-21
Сообщения: 133
Репутация: +  13  -
Профиль   Отправить e-mail  

Проблема с наследованием шаблонов

Зачем {% load staticfiles %} а не {% load static %}? Такая старая Джанга?
load еще наверное хороший тон писать в самом начале файла.
и сейчас рекомендуется указывать какой блок закрывается
{% block content %}{% endblock content %}

Хотя не уверен что проблема пропадет.

Офлайн

#3 Окт. 26, 2014 23:30:56

azazell00
Зарегистрирован: 2014-10-26
Сообщения: 9
Репутация: +  0  -
Профиль   Отправить e-mail  

Проблема с наследованием шаблонов

исправил изменением

{% extends “base.html” %} => {% extends “resume/base.html” %}

в person.html

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version