Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 为什么不是';Django渲染我的块内容或识别登录用户?_Python_Django_Django Templates - Fatal编程技术网

Python 为什么不是';Django渲染我的块内容或识别登录用户?

Python 为什么不是';Django渲染我的块内容或识别登录用户?,python,django,django-templates,Python,Django,Django Templates,我有base.html它包含一个{%block bodycontent%}和{%endblock%}标记,这个模板到目前为止在其他任何地方都可以工作,并且驻留在项目级模板目录中。酷 然后,在特定于应用程序的模板目录中,我有directory.html,它正确地包含{%extends'base.html%} 但是,有两个问题:如果我登录并转到/directory/url,我的导航栏(位于base.html模板中)不会显示正在登录的用户(从页面导航,恢复导航栏的正常登录用户显示) 因此,direct

我有
base.html
它包含一个
{%block bodycontent%}
{%endblock%}
标记,这个模板到目前为止在其他任何地方都可以工作,并且驻留在项目级模板目录中。酷

然后,在特定于应用程序的模板目录中,我有
directory.html
,它正确地包含
{%extends'base.html%}

但是,有两个问题:如果我登录并转到
/directory/
url,我的导航栏(位于
base.html
模板中)不会显示正在登录的用户(从页面导航,恢复导航栏的正常登录用户显示)

因此,
directory.html
模板似乎没有接收到用户对象,
{%if user.is\u authenticated%}
失败,只是呈现了未登录的版本

另一个问题是
directory.html
根本不填充
bodycontent
。或者别的什么。我甚至插入了标准文本和额外的HTML标记,试图看到一些东西,但除了
base.HTML
模板之外,什么也看不到

项目级URL.py

urlpatterns = patterns('',
    url(r'^$', LandingPage.as_view(), name='home'),
    url(r'^accounts/', include('registration.backends.default.urls')),
    url(r'^about/', AboutPage.as_view(), name='about'),
    url(r'^login/', loginPage, name='login'),
    url(r'^logout/', logoutPage, name='logout'),
    url(r'^admin/', include(admin.site.urls), name='admin'),
    url(r'^register/', registrationPage, name='register'),
    url(r'^profile/', include(khusers_urlpatterns)),
    url(r'^directory/', displayDirectory, name = 'directory'),
    url(r'^addfriend/', AddFriend, name="add friend")
)
@login_required
def displayDirectory (request, options=None):
    """displays a list of public profile pages"""
    latestModUsers = KHPublicPage.objects.order_by('-lastModified')[:20]
    template = loader.get_template('khusers/directory.html')
    context = RequestContext(request, {'profiles': latestModUsers})
    return HttpResponse(template.render(context))
从视图中.py

urlpatterns = patterns('',
    url(r'^$', LandingPage.as_view(), name='home'),
    url(r'^accounts/', include('registration.backends.default.urls')),
    url(r'^about/', AboutPage.as_view(), name='about'),
    url(r'^login/', loginPage, name='login'),
    url(r'^logout/', logoutPage, name='logout'),
    url(r'^admin/', include(admin.site.urls), name='admin'),
    url(r'^register/', registrationPage, name='register'),
    url(r'^profile/', include(khusers_urlpatterns)),
    url(r'^directory/', displayDirectory, name = 'directory'),
    url(r'^addfriend/', AddFriend, name="add friend")
)
@login_required
def displayDirectory (request, options=None):
    """displays a list of public profile pages"""
    latestModUsers = KHPublicPage.objects.order_by('-lastModified')[:20]
    template = loader.get_template('khusers/directory.html')
    context = RequestContext(request, {'profiles': latestModUsers})
    return HttpResponse(template.render(context))
directory.html

{% extends 'base.html' %}

{% block bodycontent %}

{% comment %}
Context expected:
    request.user as user
     a list of khusers.models.KHPublicPage as 'profiles'

        aboutMe
        displayName




bootstrap glyphicons:
    use span class ="badge one of the following"
    glyphicon glyphicon-ok
    glyphicon glyphicon-remove
{% endcomment %}
<div class="container">
    {% for person in profiles %}
    <div class="panel panel-default">
        <div class="panel-heading"> {{person.displayName}} </div>
        <div class="panel-body">
            <h4> {{person.aboutMe}} </h4>
            <br />
            <form action="/addfriend/" method="POST">
                <input type="hidden" value ="{{person.pk}}" name="requestee">

                <input type="text" name="note" placeholder="Let's be friends!">
                <button type="submit" class="btn btn-default">Add friend</button>
            </form>
        </div>
    </div>
    {% endfor %}
</div>

{% endblock %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="">
{% load static from staticfiles %}



<!-- pre headcontent django tag -->
{% block headcontent %}

{% endblock %}
<!-- post headcontent django tag -->
<title>{% block title %} {% endblock %}
</title>

<link rel="stylesheet" type="text/css" href="{% static 'bootstrap/css/bootstrap.min.css' %}">
<link rel="stylesheet" type="text/css" href="{% static 'bootstrap/css/bootstrap-responsive.css' %}">
<link rel="stylesheet" type="text/css" href="{% static 'kh.css' %}">

</head>
<body>
<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>

          <a class="navbar-brand" href="/">stuff</a>
            <ul class="nav navbar-nav">
                <li><a class="" action="/about/">About</a></li>
                <li><a class="" action="/support/">Other Things</a></li>
            </ul>
        </div>
        <div class="navbar-collapse collapse">
            {% if user.is_authenticated %}

                <a class="btn btn-default navbar-btn navbar-right btn-danger" style="margin-left: 10px;" href="/logout/">Logout </a>
                <a class="btn btn-default navbar-btn navbar-right btn-info" style="margin-left: 10px;" href="/profile/" > {{user.username}}</a>
            {% else %}
            <a class="btn btn-default navbar-btn navbar-right khtopbarbuttons" style="margin-left: 10px;" href="/register/">Register</a>
                <form class="navbar-form navbar-right khtopbarbuttons" role="form" action ='/login/' method='post'>
                    {% csrf_token %}
                    <div class="form-group" style="margin-right: 10px;">
                        <input type="text" placeholder="username" class="form-control" name="username" style="margin-left: 10px;">
                    </div>
                    <div class="form-group" style="margin-right: 10px;">
                        <input type="password" placeholder="Password" class="form-control" name="password" style="margin-left: 10px;">
                    </div>
                    <button type="submit" class="btn btn-success" style="margin-left: 10px;">Sign in</button>
                </form>

            {% endif %}
        </div><!--/.navbar-collapse -->
      </div>
    </div>


    <div class="container khcontainerpadded">

                <!-- Pre bodycontent django tag -->
                {% block bodycontent %}
?
                {% endblock %}
                <!-- post bodycontent django tag -->
    </div>
<script src="{{ STATIC_URL }}jquery-1.10.2.js"></script>
<script src="{{ STATIC_URL }}bootstrap/js/bootstrap.js"></script>

</body>
</html>
{%extends'base.html%}
{%block bodycontent%}
{%comment%}
预期的背景:
request.user作为用户
khusers.models.KHPublicPage的列表为“profiles”
关于我
显示名称
引导图标:
使用span class=“标记以下各项之一”
字形图标字形图标ok
字形图标字形图标删除
{%endcomment%}
{配置文件%中的人员的百分比}
{{person.displayName}}
{{person.aboutMe}}

加朋友 {%endfor%} {%endblock%}
base.html

{% extends 'base.html' %}

{% block bodycontent %}

{% comment %}
Context expected:
    request.user as user
     a list of khusers.models.KHPublicPage as 'profiles'

        aboutMe
        displayName




bootstrap glyphicons:
    use span class ="badge one of the following"
    glyphicon glyphicon-ok
    glyphicon glyphicon-remove
{% endcomment %}
<div class="container">
    {% for person in profiles %}
    <div class="panel panel-default">
        <div class="panel-heading"> {{person.displayName}} </div>
        <div class="panel-body">
            <h4> {{person.aboutMe}} </h4>
            <br />
            <form action="/addfriend/" method="POST">
                <input type="hidden" value ="{{person.pk}}" name="requestee">

                <input type="text" name="note" placeholder="Let's be friends!">
                <button type="submit" class="btn btn-default">Add friend</button>
            </form>
        </div>
    </div>
    {% endfor %}
</div>

{% endblock %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="description" content="">
    <meta name="author" content="">
{% load static from staticfiles %}



<!-- pre headcontent django tag -->
{% block headcontent %}

{% endblock %}
<!-- post headcontent django tag -->
<title>{% block title %} {% endblock %}
</title>

<link rel="stylesheet" type="text/css" href="{% static 'bootstrap/css/bootstrap.min.css' %}">
<link rel="stylesheet" type="text/css" href="{% static 'bootstrap/css/bootstrap-responsive.css' %}">
<link rel="stylesheet" type="text/css" href="{% static 'kh.css' %}">

</head>
<body>
<div class="navbar navbar-inverse navbar-fixed-top" role="navigation">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>

          <a class="navbar-brand" href="/">stuff</a>
            <ul class="nav navbar-nav">
                <li><a class="" action="/about/">About</a></li>
                <li><a class="" action="/support/">Other Things</a></li>
            </ul>
        </div>
        <div class="navbar-collapse collapse">
            {% if user.is_authenticated %}

                <a class="btn btn-default navbar-btn navbar-right btn-danger" style="margin-left: 10px;" href="/logout/">Logout </a>
                <a class="btn btn-default navbar-btn navbar-right btn-info" style="margin-left: 10px;" href="/profile/" > {{user.username}}</a>
            {% else %}
            <a class="btn btn-default navbar-btn navbar-right khtopbarbuttons" style="margin-left: 10px;" href="/register/">Register</a>
                <form class="navbar-form navbar-right khtopbarbuttons" role="form" action ='/login/' method='post'>
                    {% csrf_token %}
                    <div class="form-group" style="margin-right: 10px;">
                        <input type="text" placeholder="username" class="form-control" name="username" style="margin-left: 10px;">
                    </div>
                    <div class="form-group" style="margin-right: 10px;">
                        <input type="password" placeholder="Password" class="form-control" name="password" style="margin-left: 10px;">
                    </div>
                    <button type="submit" class="btn btn-success" style="margin-left: 10px;">Sign in</button>
                </form>

            {% endif %}
        </div><!--/.navbar-collapse -->
      </div>
    </div>


    <div class="container khcontainerpadded">

                <!-- Pre bodycontent django tag -->
                {% block bodycontent %}
?
                {% endblock %}
                <!-- post bodycontent django tag -->
    </div>
<script src="{{ STATIC_URL }}jquery-1.10.2.js"></script>
<script src="{{ STATIC_URL }}bootstrap/js/bootstrap.js"></script>

</body>
</html>

{%load static from staticfiles%}
{%block headcontent%}
{%endblock%}
{%block title%}{%endblock%}
切换导航
  • {%else%} {%csrf_令牌%} 登录 {%endif%} {%block bodycontent%} ? {%endblock%}
这一定与Django“编译”和缓存模板的方式有关

我尝试了各种各样的东西,刷新了一切,雅达雅达雅达

最终修复它的是在文件系统中将directory2.html重命名为directory2.html,并调整视图代码以加载新文件

砰的一声,立刻就开始工作了

重新命名,仍在工作

我已经清除了我的浏览器缓存,所以我认为这是Django的一些内在黑魔法在作怪


哦,好吧,生活和学习什么的。

我已经通过脚本标签关闭了

#
而不是:
#

因此标记从未关闭,页面的其余部分成为脚本标记的一部分


我用了hash,因为我不知道怎么回答。。。脚本标记没有显示在我发布的答案中

首先:使用RequestContext,然后您将拥有用户,因为它是在中间件中设置的:)显示base.htmltoo@lalo-很好,现在导航栏保留了登录名,谢谢:-)以澄清
{%block bodycontent%}
{%endblock%}中仍然没有任何呈现
标签