【发布时间】:2017-11-13 04:00:29
【问题描述】:
所以我在 Django 中实现了一个数据库,以使用给定的用户模型接收用户名和密码。但是,当我点击提交时,密码会进入电子邮件字段。关于我可能做错的任何建议?这是用于用户注册。谢谢!可能是用户没有密码部分吗?我将如何添加它?
forms.py
class UserRegistrationForm(forms.Form):
username = forms.CharField(
required = True,
label = 'Username',
max_length = 32
)
password = forms.CharField(
required = True,
label = 'Password',
max_length = 32,
widget = forms.PasswordInput()
)
views.py
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.shortcuts import render
from django.shortcuts import render
from django.contrib.auth.models import User
from django.contrib.auth import authenticate, login
from django.http import HttpResponseRedirect
from django import forms
from .forms import UserRegistrationForm
#from django.contrib.auth import views as auth_views
#from . import views
# Create your views here.
def login(request):
return render(request, 'login.html')
def profiles(request):
return render(request, 'profiles.html')
def signup(request):
if request.method == 'POST':
form = UserRegistrationForm(request.POST)
if form.is_valid():
userObj = form.cleaned_data
print(userObj)
username = userObj['username']
password = userObj['password']
if not (User.objects.filter(username=username).exists()):
User.objects.create_user(username,password)
user = authenticate(username = username, password = password)
login(request)
return HttpResponseRedirect('/')
else:
raise forms.ValidationError('Looks like a username with that email or password already exists')
else:
form = UserRegistrationForm()
return render(request, 'signup_form.html', {'form': form})
def home(request):
return render(request, 'home.html')
signup.html
<!DOCTYPE html>
<html >
<head>
<meta charset="UTF-8">
<title>Login</title>
{% load staticfiles %}
<link rel="stylesheet" href="{% static 'signup.css' %}">
</head>
<body>
</div>
<div class='login'>
<div class='login_title'>
<span>Sign Up</span>
</div>
<div class='login_fields'>
<div class='login_fields__user'>
<div class='icon'>
<img src='http://d2nysvt2e2u12u.cloudfront.net/img/NPLwebsite17_header_mobile_accountBtn.png?v=34534534'>
</div>
<input placeholder='Username' type='text' name = 'username'>
<div class='validation'>
<img src='https://s3-us-west-2.amazonaws.com/s.cdpn.io/217233/tick.png'>
</div>
</input>
</div>
<div class='login_fields__password'>
<div class='icon'>
<img src='http://upload.wikimedia.org/wikipedia/commons/9/9e/Lock_icon.png'>
</div>
<input placeholder='Password' type='password' name = 'password'>
<div class='validation'>
</div>
</div>
<div class='login_fields__submit'>
<input type='submit' formmethod="post" value='Submit'>
<script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
<script src='http://ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js'></script>
<script src="{% static 'signup.js' %}"></script>
</body>
</html>
【问题讨论】:
-
你的html中没有
<form>标签?