Python 在一个视图中尝试多种形式时出现局部变量错误

Python 在一个视图中尝试多种形式时出现局部变量错误,python,django,Python,Django,我在互联网上搜索在一个视图中使用两个表单的解决方案,发现了这个 但当我试图发布任何表单时,在赋值错误之前引用了局部变量“loginform” 回溯 Request Method: POST Request URL: http://127.0.0.1:8000/ Django Version: 1.8.3 Python Version: 2.7.10 Installed Applications: ('django.contrib.admin', 'django.contrib.auth',

我在互联网上搜索在一个视图中使用两个表单的解决方案,发现了这个

但当我试图发布任何表单时,在赋值错误之前引用了局部变量“loginform”

回溯

Request Method: POST
Request URL: http://127.0.0.1:8000/

Django Version: 1.8.3
Python Version: 2.7.10
Installed Applications:
('django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'main')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'django.middleware.security.SecurityMiddleware')


Traceback:
File "/Users/eisamazrouei/Desktop/django/imhere/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  132.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Users/eisamazrouei/Desktop/django/imhere/imhere/main/views.py" in landing_page
  36.   return render(request,'main/landing_page.html',{'loginform':loginform,'registerform':registerform})

Exception Type: UnboundLocalError at /
Exception Value: local variable 'loginform' referenced before assignment
views.py

def landing_page(request):
if request.method == "POST":
    if 'Login' in request.POST:
        loginform = LoginForm(request.POST)
        if loginform.is_valid():
            username = form.cleaned_data['l_username']
            password = form.cleaned_data['l_password']
            user = authenticate(username=username,password=password)
            login(request,user)
            return redirect(reverse('main_page',args=[request.user.username]))
        registerform = RegisterForm()
    elif 'Register' in request.POST :
        registerform = RegisterForm(request.POST)
        if registerform.is_valid():
            username = form.cleaned_data['username']
            password = form.cleaned_data['password']
            email = form.cleaned_data['email']
            user = User.objects.create_user(username,email,password)
            login(request,user)
            return redirect(reverse('edit_page',args=[request.user.username]))
        loginform = LoginForm()
else :
    loginform = LoginForm()
    registerform=RegisterForm()
return render(request,'main/landing_page.html',{'loginform':loginform,'registerform':register form})
登陆页面.html

<div id=login>
    <form action="" method="POST">
    {% csrf_token %}
    {{loginform.as_p}}
    <input type="submit" value="Login"/>
    </form>
</div>


<div id=register>
    <form action="" method="POST">
    {% csrf_token %}
    {{registerform.as_p}}
    <input type="submit" value="Register"/>
    </form>
</div>

{%csrf_令牌%}
{{loginform.as_p}
{%csrf_令牌%}
{{registerform.as_p}
如果我用的方法不对,请告诉我


谢谢

您没有在post数据中发送登录或注册,因此post中的两个条件都不会为真,并且变量仍然未定义

您已经为提交按钮指定了值,但没有指定名称,因此它们不能包含在发布数据中。这样做:

<input type="submit" name="Login" value="Login"/>
...
<input type="submit" name="Register" value="Register"/>

...

请显示完整的回溯。你从哪里得到这个错误的?当您这样做时,您正在执行什么操作?我想您出现了这个错误,因为request.POST中既没有“Login”也没有“Register”。@DanielRoseman trackback包含在内。