密码未保存到 Django 中的 auth_user table
Password not saving to auth_user table in Django
下面是用户注册的代码。密码值未保存到 auth_users table。我正在使用 MySQL 作为我的数据库。
非常感谢任何帮助 TIA
form.py
class MyRegistrationForm(UserCreationForm):
email=forms.EmailField(required=True)
class Meta:
model=User
fields = ('username','email','password1','password2')
def save(self, commit=True):
user = super(UserCreationForm, self).save(commit=False)
user.email=self.cleaned_data["email"]
if commit:
user.save()
return user
view.py
def register_user(request):
if request.method =='POST':
print request.POST['username']
print request.POST['password1']
print request.POST['password2']
form=MyRegistrationForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect('/register-success/')
args={}
args.update(csrf(request))
args['form']=MyRegistrationForm()
return render_to_response("register.html",args,
context_instance=RequestContext(request))
HTML
<form method="post" class="form-signin" action="/register/">{% csrf_token %}
<h2 class="form-signin-heading">Please sign in</h2>
<label for="users" class="sr-only">UserName</label>
<input name="username" type="text" id="users" class="form-control" placeholder="Username" required autofocus>
<label for="inputEmail" class="sr-only">Email address</label>
<input name="email" type="email" id="inputEmail" class="form-control" placeholder="Email address" required autofocus>
<label for="inputPassword" class="sr-only">Password</label>
<input name="password1" type="password" id="inputPassword" class="form-control" placeholder="Password" required>
<label for="inputPassword1" class="sr-only">Password</label>
<input name="password2" type="password" id="inputPassword1" class="form-control" placeholder="Password" required>
<button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button>
</form>
我想指出您的 def regiseter_user(request): view 函数有一个多余的 "e" (regisEter).
你打错了super()
。需要使用classMyRegistrationForm
的形式,这样会调用UserCreationForm
的save方法并设置密码
user = super(MyRegistrationForm, self).save(commit=False)
下面是用户注册的代码。密码值未保存到 auth_users table。我正在使用 MySQL 作为我的数据库。
非常感谢任何帮助 TIA
form.py
class MyRegistrationForm(UserCreationForm):
email=forms.EmailField(required=True)
class Meta:
model=User
fields = ('username','email','password1','password2')
def save(self, commit=True):
user = super(UserCreationForm, self).save(commit=False)
user.email=self.cleaned_data["email"]
if commit:
user.save()
return user
view.py
def register_user(request):
if request.method =='POST':
print request.POST['username']
print request.POST['password1']
print request.POST['password2']
form=MyRegistrationForm(request.POST)
if form.is_valid():
form.save()
return HttpResponseRedirect('/register-success/')
args={}
args.update(csrf(request))
args['form']=MyRegistrationForm()
return render_to_response("register.html",args,
context_instance=RequestContext(request))
HTML
<form method="post" class="form-signin" action="/register/">{% csrf_token %}
<h2 class="form-signin-heading">Please sign in</h2>
<label for="users" class="sr-only">UserName</label>
<input name="username" type="text" id="users" class="form-control" placeholder="Username" required autofocus>
<label for="inputEmail" class="sr-only">Email address</label>
<input name="email" type="email" id="inputEmail" class="form-control" placeholder="Email address" required autofocus>
<label for="inputPassword" class="sr-only">Password</label>
<input name="password1" type="password" id="inputPassword" class="form-control" placeholder="Password" required>
<label for="inputPassword1" class="sr-only">Password</label>
<input name="password2" type="password" id="inputPassword1" class="form-control" placeholder="Password" required>
<button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button>
</form>
我想指出您的 def regiseter_user(request): view 函数有一个多余的 "e" (regisEter).
你打错了super()
。需要使用classMyRegistrationForm
的形式,这样会调用UserCreationForm
的save方法并设置密码
user = super(MyRegistrationForm, self).save(commit=False)