Django NoReverseMatch(与用户登录相反,未找到)

Django NoReverseMatch(与用户登录相反,未找到),django,login,django-forms,django-urls,Django,Login,Django Forms,Django Urls,我有一个名为log的django项目和一个名为basic_app的应用程序。我创建了一个注册表单,但当我想创建一个用户登录时,我遇到以下错误: NoReverseMatch at/basic\应用程序/用户\登录/ 找不到“用户登录”的反向项用户_login'不是有效的视图函数或模式名称 views.py: from django.shortcuts import render from basic_app.forms import UserForm, UserProfileInfoForm f

我有一个名为log的django项目和一个名为basic_app的应用程序。我创建了一个注册表单,但当我想创建一个用户登录时,我遇到以下错误:

NoReverseMatch at/basic\应用程序/用户\登录/ 找不到“用户登录”的反向项用户_login'不是有效的视图函数或模式名称

views.py:

from django.shortcuts import render
from basic_app.forms import UserForm, UserProfileInfoForm
from django.contrib.auth import authenticate, login, logout
from django.http import HttpResponseRedirect, HttpResponse
from django.core.urlresolvers import reverse
from django.contrib.auth.decorators import login_required


# Create your views here.

def index(request):
    return render(request, 'basic_app/index.html')


@login_required
def special(request):
    return HttpResponse('You are loged in!')

@login_required
def user_logout(request):
    logout(request)
    return HttpResponseRedirect(reverse('index'))




def register(request):
    registered = False

    if request.method == 'POST':
        user_form = UserForm(data=request.POST)
        profile_form = UserProfileInfoForm(data=request.POST)

        if user_form.is_valid() and profile_form.is_valid():
            user = user_form.save()
            user.set_password(user.password)
            user.save()

            profile = profile_form.save(commit=False)
            profile.user = user

            if 'profile_pic' in request.FILES:
                profile.profile_pic = request.FILES[
                    'profile_pic'
                ]

            profile.save()
            registered = True

        else:
             print(user_form.errors, profile_form.errors)

    else:
            user_form = UserForm()
            profile_form = UserProfileInfoForm()

    return render(request, 'basic_app/registration.html',
                             {'user_form':user_form,
                              'profile_form':profile_form,
                              'registered':registered})

def user_login(request):

    if request.method == 'POST':
        username = request.POST.get('username')
        password = request.POST.get('password')
        user = authenticate(username = username, password = password)

        if user:
            if user.is_active:
                login(request, user)
                return HttpResponseRedirect(reverse('index'))
            else:
                return HttpResponse('Account Not Active.')

        else:
            print('Someone tried to login and failed!')
            print('username:{} and password:{}'.format(username, password))
            return HttpResponse('invalid login details supplied!')

    else:
        return render(request, 'basic_app/login.html',{})
基本应用程序/url.py:

from django.conf.urls import url
from basic_app import views

#TEMPLATE URLS

app_name = 'basic_app'

urlpatterns = [
    url(r'^register/$', views.register, name='register'),
    url(r'^user_login/$', views.user_login, name='user_login'),
log/url.py:

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

urlpatterns = [
    url(r'^$', views.index, name='index'),
    url(r'^admin/', admin.site.urls),
    url(r'^basic_app/', include('basic_app.urls')),
    url(r'^logout/$', views.user_logout, name='logout'),
    url(r'special/', views.special, name='special')
login.html:

{% extends 'basic_app/basic.html' %}
{% block body_block %}

<div class="jumbotron">
    <h1>Please Login: </h1>
    <form action="{% url 'basic_app: user_login' %}" method="post">

        {% csrf_token %}
        <label for="username">Username:</label>
        <input type="text" name="username" placeholder="Enter Username">

        <label for="passwrod">Password:</label>
        <input type="password" name="password">

        <input type="submit" name="" value="Login">

    </form>


</div>


{% endblock %}
{%extends'basic\u app/basic.html%}
{%block body_block%}
请登录:
{%csrf_令牌%}
用户名:
密码:
{%endblock%}

{%url'basic\u app:user\u login%%}
中尝试删除
用户登录名前面的空格
非常感谢Yusef。问题解决了!