python - Django用户无法登录
问题描述
我制作了一个自定义的 UserCreationForm。我可以注册,但之后我无法登录我的网络应用程序。我只能以超级用户身份登录。我导入了 LoginView() 但是当我尝试登录时它告诉我“请输入正确的用户名和密码。请注意,这两个字段可能区分大小写。”。
[视图.py]
@csrf_exempt
def signup(request):
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:
print('found it')
profile.profile_pic = request.FILES['profile_pic']
profile.save()
# registered = True
login(request, user, backend='django.contrib.auth.backends.ModelBackend')
return redirect('../')
else:
print(user_form.errors,profile_form.errors)
else:
user_form = UserForm()
profile_form = UserProfileInfoForm()
return render(request,'users/signup.html',
{'user_form':user_form,
'profile_form':profile_form,'registered':registered})
表格.py
class UserForm(UserCreationForm):
class Meta():
model = User
fields = ('username','email')
def __init__(self, *args, **kwargs):
super(UserCreationForm, self).__init__(*args, **kwargs)
for fieldname in ['username', 'password1', 'password2']:
self.fields[fieldname].help_text = None
class UserProfileInfoForm(forms.ModelForm):
class Meta():
is_photographer = forms.BooleanField()
model = UserProfileInfo
fields = ('portfolio_site','profile_pic', 'type_of_photography', 'is_photographer',)```
模型.py
class UserProfileInfo(models.Model):
user = models.OneToOneField(User,on_delete=models.CASCADE)
portfolio_site = models.URLField(blank=True)
profile_pic = models.ImageField(upload_to='profile_pics',blank=True)
is_photographer = models.BooleanField(default=False)
type_of_photography = models.CharField(max_length=120, blank=True)
def __str__(self):
return self.user.username
登录.html
{% load staticfiles %}
{% block title %}
<title>Login</title>
<link rel="stylesheet" href="{% static 'css/login.css' %}"/>
{% endblock %}
{% block main %}
<div class="col-md-11 container login">
<div class="row">
<div class="col-md-7 left">
<div class="group">
<h1>Login</h1>
<h4>Welcome Back. Please login to your account.</h4>
<form enctype="multipart/form-data" method="POST">
{% csrf_token %}
{{ form.as_p }}
<button type="submit" value = "login">Login</button>
</form>
</div>
</div>
<div class="col-md-5 right">
<div class="group">
<h1>Don't have an account?</h1>
<h4>Create one now!</h4>
<a href="{% url 'signup' %}"><button>Sign up</button></a>
</div>
</div>
</div>
</div>
{% endblock %}
解决方案
推荐阅读
- reactjs - For of 循环包含 Await 关键字
- azure - 使用标签计划 Azure 虚拟机 (VM) 启动
- html - 当它们在同一行但在不同列中时,如何将文本放在另一个文本下方?
- python - RotatingFileHandler 正在删除日志文件中的旧记录并重新创建新文件
- go - 如何使用“chromedp”浏览 Chrome 设置?
- php - 解决 Laravel Auth Authenticatable to User 模型解决静态分析问题
- python - 为什么在 pytorch 教程中使用 transpose(1,2,0)?
- sql-server - Ran update 语句更新一些列值,需要回滚
- python - 读取合并单元格的 Excel 文件 Pandas
- r - 图 ggplot 上的 0 和 1