登录,2次浏览,1个模板 - DJANGO

时间:2015-01-15 18:14:16

标签: html django django-forms django-templates django-views

我有一个主页,在这个主页中我包含了我连接的connexion.html。但我有这个错误:                  'str'对象没有属性'visible_fields'

我的主页HTML:

{% extends "base.html" %} /* There are a css link of Bootstrap :bootstrap.min.css
<form method="POST" action="{% url 'connexion' %}" >
    {% csrf_token %}
    {{ form|bootstrap }}
    <input type="submit" class="btn btn-success" value="Je m'inscris" >
</form> 
...
<div class="panel-body">
    {% load bootstrap %}
    {% include "monsite/connexion.html" %}
</div>
...

我的connexion.html:

<link rel="stylesheet" href="/static/css/bootstrap.min.css"/>
{% load bootstrap %,=
<form method="POST" action="{% url 'connexion' %}" >
    {% csrf_token %}
    {{ form|bootstrap }}
    <input type="submit" class="btn btn-success" value="Login" >
</form>

我对联系的看法:我还有家庭观点

def connexion(request):
    error = False
    if request.method == "POST":
        form = connexionForm(request.POST)
        if form.is_valid():
            pseudo = form.cleaned_data["pseudo"]
            mdp = form.cleaned_data["mdp"]
            user = authenticate(username=pseudo, password=mdp)
            if user != None :
                login(request,user)
                return redirect(reverse(accueil))
            else :
                error = True
    else :
        form = connexionForm()
    return render(request,"monsite/connexion.html",locals())

connexionForm只是form.py中包含2个字段的表单

所以我想从我的主页登录......

2 个答案:

答案 0 :(得分:1)

观点不会像那样工作。

您不能包含模板,并希望它以某种方式调用视图。模板没有自己的视图,模板通常不知道或关心他们从哪个视图调用。包括&#34; connexion.html&#34;只使用当前模板上下文呈现它,在这种情况下,它没有任何名为&#34; form&#34;的变量。

如果要包含带有自定义上下文的模板,则需要使用inclusion template tag

答案 1 :(得分:0)

在locals()中,有form和所有变量;

错误是在connexion.html中的bootstrap |形式,但我不知道在哪里