在 Django 中尝试使用基于类的视图时,我无法让自定义用户登录。
这是我的看法:
class Loginview(FormView):
form_class = LoginForm
template_name = 'login.html'
def get(self, request, *args, **kwargs):
return render(request, 'login.html', {'form': LoginForm})
def form_valid(self, form):
return redirect('dashboard')
def form_invalid(self, form):
return render(self.request, 'login.html', {'form': form})
我的表格:
class LoginForm(ModelForm):
class Meta:
model = Company
fields = ['email', 'password']
我的模型:
class Company(AbstractBaseUser, PermissionsMixin):
name = models.CharField(max_length=50)
address = models.CharField(max_length=50)
phone = models.CharField(max_length=50)
date_joined = models.DateTimeField(auto_now_add=True)
email = models.EmailField(max_length=50, unique=True)
is_staff = models.BooleanField(default=True)
email_confirmed = models.BooleanField(default=False)
USERNAME_FIELD = 'email'
objects = UserManager()
仅供参考,这是一个自定义模型,并有一个单独的用户管理器。每当我提交带有电子邮件和密码字段的登录模板时,它都会返回一个表单错误,指出电子邮件和密码不匹配,而它们应该匹配。