Python Django-NoReverseMatch at/login/here/

Python Django-NoReverseMatch at/login/here/,python,django,Python,Django,我只是不明白。我在这个错误上花了太多时间。请帮我找出问题所在。如果您需要任何其他信息,请告诉我 错误内容如下: NoReverseMatch at/login/here/ 未找到参数为“()”且关键字参数为“{}”的“欢迎”的反转。已尝试0个模式:[] 项目URL.py from django.conf.urls import url, include from django.contrib import admin urlpatterns = [ url(r'^admin/',

我只是不明白。我在这个错误上花了太多时间。请帮我找出问题所在。如果您需要任何其他信息,请告诉我

错误内容如下: NoReverseMatch at/login/here/ 未找到参数为“()”且关键字参数为“{}”的“欢迎”的反转。已尝试0个模式:[]

项目URL.py

from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
    url(r'^admin/',     admin.site.urls),
    # creating registered namespaces for each app
    url(r'^login/',     include('login_app.urls',   namespace = "login_app")),
]
from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'here/', views.login_user),
]
from django.shortcuts import render, get_object_or_404
from django.contrib.auth.decorators import login_required
from django.contrib.auth import authenticate, login, logout
from django.http import HttpResponseRedirect, HttpResponse
from django.core.urlresolvers import reverse
from login_app.forms import LoginForm

from django.shortcuts import render_to_response # this is going to be depricated
from django.template import RequestContext


def login_user(request):
    form = LoginForm()
    logout(request) # logs out user upon reaching the /login/ page
    user = password = ''
    # if this is a POST request we need to process the form data
    if request.POST:
        # create a form instance and populate it with the data from the request:
        form = LoginForm(request.POST)
        # check whether it's valid:
        if form.is_valid():
            # process the data in form.cleaned_data as required
            user = form.cleaned_data['user'] # extracting the username from the form before authenticating
            password = form.cleaned_data['password'] # extracting the password from the form before authenticating
            user = authenticate(username=user, password=password) # authenticating
            if user is not None:
                login(request, user)
                #return HttpResponseRedirect(reverse('dashboard_app:welcome'))
                return HttpResponse("hi!")
            else:
               template = 'login.html'
               state = "Your username and/or password are incorrect."
               context = {'state': state,'form': form,}
               return render(request, template, context)
    template = 'login_app/login.html'
    state = ''
    context ={'state': state, 'form': form}
    #return HttpResponse("hey!")
    return render(request, template, context)
from django import forms

## importing crispy form utilities
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Layout, Submit, Div, ButtonHolder
from crispy_forms.bootstrap import FormActions, PrependedText


class LoginForm(forms.Form):

    ## user field
    user = forms.CharField()

    ## password field
    password = forms.CharField(
        widget=forms.PasswordInput()
    )

    ## Using crispy forms to create a form
    helper = FormHelper()
    helper.form_method = 'POST'
    helper.form_show_labels = False
    helper.layout = Layout(
        Div(
            PrependedText('user',       '<i class="fa fa-user fa-fw"></i>',     placeholder='Username'),
            PrependedText('password',   '<i class="fa fa-lock fa-fw"></i>',     placeholder='Password', autocomplete='off'),
            style='padding:0px;',
            css_class='col-md-3'
        ),
        Div(
            ButtonHolder(
                Submit('submit','Login'), css_class='col-md-12'
            ),  css_class='row'
        )
    )
登录应用程序/url.py

from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
    url(r'^admin/',     admin.site.urls),
    # creating registered namespaces for each app
    url(r'^login/',     include('login_app.urls',   namespace = "login_app")),
]
from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'here/', views.login_user),
]
from django.shortcuts import render, get_object_or_404
from django.contrib.auth.decorators import login_required
from django.contrib.auth import authenticate, login, logout
from django.http import HttpResponseRedirect, HttpResponse
from django.core.urlresolvers import reverse
from login_app.forms import LoginForm

from django.shortcuts import render_to_response # this is going to be depricated
from django.template import RequestContext


def login_user(request):
    form = LoginForm()
    logout(request) # logs out user upon reaching the /login/ page
    user = password = ''
    # if this is a POST request we need to process the form data
    if request.POST:
        # create a form instance and populate it with the data from the request:
        form = LoginForm(request.POST)
        # check whether it's valid:
        if form.is_valid():
            # process the data in form.cleaned_data as required
            user = form.cleaned_data['user'] # extracting the username from the form before authenticating
            password = form.cleaned_data['password'] # extracting the password from the form before authenticating
            user = authenticate(username=user, password=password) # authenticating
            if user is not None:
                login(request, user)
                #return HttpResponseRedirect(reverse('dashboard_app:welcome'))
                return HttpResponse("hi!")
            else:
               template = 'login.html'
               state = "Your username and/or password are incorrect."
               context = {'state': state,'form': form,}
               return render(request, template, context)
    template = 'login_app/login.html'
    state = ''
    context ={'state': state, 'form': form}
    #return HttpResponse("hey!")
    return render(request, template, context)
from django import forms

## importing crispy form utilities
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Layout, Submit, Div, ButtonHolder
from crispy_forms.bootstrap import FormActions, PrependedText


class LoginForm(forms.Form):

    ## user field
    user = forms.CharField()

    ## password field
    password = forms.CharField(
        widget=forms.PasswordInput()
    )

    ## Using crispy forms to create a form
    helper = FormHelper()
    helper.form_method = 'POST'
    helper.form_show_labels = False
    helper.layout = Layout(
        Div(
            PrependedText('user',       '<i class="fa fa-user fa-fw"></i>',     placeholder='Username'),
            PrependedText('password',   '<i class="fa fa-lock fa-fw"></i>',     placeholder='Password', autocomplete='off'),
            style='padding:0px;',
            css_class='col-md-3'
        ),
        Div(
            ButtonHolder(
                Submit('submit','Login'), css_class='col-md-12'
            ),  css_class='row'
        )
    )
登录\u app/views.py

from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
    url(r'^admin/',     admin.site.urls),
    # creating registered namespaces for each app
    url(r'^login/',     include('login_app.urls',   namespace = "login_app")),
]
from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'here/', views.login_user),
]
from django.shortcuts import render, get_object_or_404
from django.contrib.auth.decorators import login_required
from django.contrib.auth import authenticate, login, logout
from django.http import HttpResponseRedirect, HttpResponse
from django.core.urlresolvers import reverse
from login_app.forms import LoginForm

from django.shortcuts import render_to_response # this is going to be depricated
from django.template import RequestContext


def login_user(request):
    form = LoginForm()
    logout(request) # logs out user upon reaching the /login/ page
    user = password = ''
    # if this is a POST request we need to process the form data
    if request.POST:
        # create a form instance and populate it with the data from the request:
        form = LoginForm(request.POST)
        # check whether it's valid:
        if form.is_valid():
            # process the data in form.cleaned_data as required
            user = form.cleaned_data['user'] # extracting the username from the form before authenticating
            password = form.cleaned_data['password'] # extracting the password from the form before authenticating
            user = authenticate(username=user, password=password) # authenticating
            if user is not None:
                login(request, user)
                #return HttpResponseRedirect(reverse('dashboard_app:welcome'))
                return HttpResponse("hi!")
            else:
               template = 'login.html'
               state = "Your username and/or password are incorrect."
               context = {'state': state,'form': form,}
               return render(request, template, context)
    template = 'login_app/login.html'
    state = ''
    context ={'state': state, 'form': form}
    #return HttpResponse("hey!")
    return render(request, template, context)
from django import forms

## importing crispy form utilities
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Layout, Submit, Div, ButtonHolder
from crispy_forms.bootstrap import FormActions, PrependedText


class LoginForm(forms.Form):

    ## user field
    user = forms.CharField()

    ## password field
    password = forms.CharField(
        widget=forms.PasswordInput()
    )

    ## Using crispy forms to create a form
    helper = FormHelper()
    helper.form_method = 'POST'
    helper.form_show_labels = False
    helper.layout = Layout(
        Div(
            PrependedText('user',       '<i class="fa fa-user fa-fw"></i>',     placeholder='Username'),
            PrependedText('password',   '<i class="fa fa-lock fa-fw"></i>',     placeholder='Password', autocomplete='off'),
            style='padding:0px;',
            css_class='col-md-3'
        ),
        Div(
            ButtonHolder(
                Submit('submit','Login'), css_class='col-md-12'
            ),  css_class='row'
        )
    )
login.html

{% extends "base.html" %}
{% load crispy_forms_tags %}
{% block content %}
{% load staticfiles %}
<link rel="stylesheet" type="text/css" href="{% static 'login_app/css/login.css' %}">


<div class="container-fluid">
    <div class="well">
        {% csrf_token %}
        {% crispy form %}<br>
        <!--error handling-->
        <p>{{ state }}</p>
    </div>
</div>
{% endblock %}
{%extends“base.html”%}
{%load crispy_forms_tags%}
{%block content%}
{%load staticfiles%}
{%csrf_令牌%}
{%crispy form%}
{{state}}

{%endblock%}
login\u app/forms.py

from django.conf.urls import url, include
from django.contrib import admin

urlpatterns = [
    url(r'^admin/',     admin.site.urls),
    # creating registered namespaces for each app
    url(r'^login/',     include('login_app.urls',   namespace = "login_app")),
]
from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'here/', views.login_user),
]
from django.shortcuts import render, get_object_or_404
from django.contrib.auth.decorators import login_required
from django.contrib.auth import authenticate, login, logout
from django.http import HttpResponseRedirect, HttpResponse
from django.core.urlresolvers import reverse
from login_app.forms import LoginForm

from django.shortcuts import render_to_response # this is going to be depricated
from django.template import RequestContext


def login_user(request):
    form = LoginForm()
    logout(request) # logs out user upon reaching the /login/ page
    user = password = ''
    # if this is a POST request we need to process the form data
    if request.POST:
        # create a form instance and populate it with the data from the request:
        form = LoginForm(request.POST)
        # check whether it's valid:
        if form.is_valid():
            # process the data in form.cleaned_data as required
            user = form.cleaned_data['user'] # extracting the username from the form before authenticating
            password = form.cleaned_data['password'] # extracting the password from the form before authenticating
            user = authenticate(username=user, password=password) # authenticating
            if user is not None:
                login(request, user)
                #return HttpResponseRedirect(reverse('dashboard_app:welcome'))
                return HttpResponse("hi!")
            else:
               template = 'login.html'
               state = "Your username and/or password are incorrect."
               context = {'state': state,'form': form,}
               return render(request, template, context)
    template = 'login_app/login.html'
    state = ''
    context ={'state': state, 'form': form}
    #return HttpResponse("hey!")
    return render(request, template, context)
from django import forms

## importing crispy form utilities
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Layout, Submit, Div, ButtonHolder
from crispy_forms.bootstrap import FormActions, PrependedText


class LoginForm(forms.Form):

    ## user field
    user = forms.CharField()

    ## password field
    password = forms.CharField(
        widget=forms.PasswordInput()
    )

    ## Using crispy forms to create a form
    helper = FormHelper()
    helper.form_method = 'POST'
    helper.form_show_labels = False
    helper.layout = Layout(
        Div(
            PrependedText('user',       '<i class="fa fa-user fa-fw"></i>',     placeholder='Username'),
            PrependedText('password',   '<i class="fa fa-lock fa-fw"></i>',     placeholder='Password', autocomplete='off'),
            style='padding:0px;',
            css_class='col-md-3'
        ),
        Div(
            ButtonHolder(
                Submit('submit','Login'), css_class='col-md-12'
            ),  css_class='row'
        )
    )
来自django导入表单的

##导入crispy表单实用程序
从crispy_forms.helper导入FormHelper
从crispy_forms.layout导入布局、提交、Div、按钮文件夹
来自crispy_forms.bootstrap导入表单,PrependedText
类登录表单(forms.Form):
##用户字段
user=forms.CharField()
##密码字段
密码=forms.CharField(
widget=forms.PasswordInput()
)
##使用crispy表单创建表单
helper=FormHelper()
helper.form_方法='POST'
helper.form\u show\u labels=False
helper.layout=布局(
Div(
PrependedText('user','',placeholder='Username'),
PrependedText('password','',占位符='password',autocomplete='off'),
style='padding:0px;',
css_class='col-md-3'
),
Div(
钮扣工(
提交('Submit','Login'),css_class='col-md-12'
),css_class='row'
)
)

因此,以下是发生的情况,以供将来参考

base.html
(我没有发布)中有这一行

这里的错误是,我假设html的注释
也适用于Django的内联呈现语法
{%}
,但事实并非如此(回顾这一点,我不知道为什么会这样想)。删除了html评论和中提琴!我花了大量的时间来解决这个问题。希望这对以后的人有用


感谢@Transformer解决了我的问题。

您从何处调用登录页面,该页面出现错误,这意味着您给了它一个视图不需要的参数
url(r'here/',views.login\u user)
没有名称请参见我的答案。。试着让我知道我认为我的观点可能传递了两件事,而表单只期望一件事?“欢迎”来自哪里?是的,这就是我试图从你的代码中弄明白的