This is my table of register user photo
这是model.py
class SignupUser(models.Model):
name = models.CharField(max_length=100)
username = models.CharField(max_length=20)
email = models.CharField(max_length=100)
password = models.CharField(max_length=20)
def __str__(self):
return self.username
这是我的views.py,用于通过该注册用户登录我的帐户页面
def login_page(request):
'''
what code i write here ??
'''
context = {'form': SignupForm}
return render(request, 'signup.html', context)
请在我的login_page方法上解决我的views.py代码。
答案 0 :(得分:0)
from django.contrib.auth import logout, login as auth_login, authenticate
import logging as L
def login_page(request):
post_data = request.POST
user = authenticate(username=post_data['email'], password=post_data['password'])
if user is None:
L.warning('Authentication error wrong credentials')
return HttpResponseRedirect('/')
else:
auth_login(request, user)
L.INFO('Authentication ok')
return HttpResponseRedirect('/')
在这里,您可以使用django内置插件进行登录和注销,您的代码应该看起来像这样
答案 1 :(得分:0)
我不确定您是否以正确的方式执行此操作。 Django已经提供了一些机制来创建一些自定义用户模型。
您应该按照this part of the documentation中的描述,创建一个扩展django.contrib.auth.models.AbstractUser的模型。
您可以看到AbstractUser类已经具有所需的所有字段。
拥有此模型后,应在设置文件as mentioned here中将其注册为用户模型。
然后您可以使用Django实现的身份验证系统,就可以了。
如果AbstractUser提供的字段不是您要查找的字段,则可以退后一步。如果需要权限系统,则需要从django.contrib.auth.base_user.AbstractBaseUser中覆盖,也可能需要从django.contrib.auth.models.PermissionsMixin中覆盖。 只需使用tweaks and configuration,Django的内置视图和表单就可以与您的新模型一起使用。
管理初始用户模型有很多配置,一开始可能很难实现。但是,通过花一些时间了解所有这些类和配置键是如何协同工作的,您应该不会有任何问题。不要忘记查看auth系统的文档。它很繁重,但是只需一点点工作,您就可以在其中找到所需的一切。