我是Django的新手,我希望扩展PasswordResetform并自定义get_users()方法。我有一个自定义的用户模型,而不是字段“ is_active”,而是“ active”,这会引发错误
无法将关键字“ is_active”解析为字段。选项包括:活动,> admin,电子邮件,email_verified,id,kyc_verified,last_login,logentry,>密码,个人资料,人员,交易
我尝试重新定义用户模型以将必填字段设置为“ is_active”,但在迁移时始终出现错误。
django.core.exceptions.FieldError:为用户指定了未知字段(活动)
即使我将“活动”的所有实例都更改为“ is_active”
模型类
class User(AbstractBaseUser):
email = models.EmailField(max_length=254,unique= True)
active= models.BooleanField(default=True)
admin= models.BooleanField(default=False)
staff= models.BooleanField(default=False)
email_verified = models.BooleanField(default=False)
kyc_verified = models.BooleanField(default=False)
username_FIELD = 'email' #used to identify users
EMAIL_FIELD = 'email'
objects = UserManager()
表格 类ModifiedPasswordResetform(PasswordResetform):
def get_users(self,email):
active_users = UserModel._default_manager.filter(**{
'%s__iexact' %
UserModel.get_email_field_name(): email,'active': True,})
return (u for u in active_users if u.has_usable_password())
查看
def password_reset(request):
if request.method == 'POST':
form = PasswordResetform(request.POST or None)
if form.is_valid():
form.save(from_email='info@cryptoswapify.net',)
messages.success(request,'Password
reset',extra_tags='alert')
return redirect('passwordreset')
else:
messages.error(request,'Please provide a valid email
address',extra_tags='alert')
return render(request,'crypto/password_reset.html',{'form': form,})
form = PasswordResetform()
return render(request,{'form' :
form})
我希望get_users()方法检查“活动”过滤器而不是“ is_active”,或者更好地是关于如何重命名模型字段并进行迁移的解决方案,以便使我再次拥有正确的字段名称