Настроить django метод PasswordResetForm get_users - PullRequest
0 голосов
/ 10 ноября 2019

Я новичок в Django, я хочу расширить PasswordResetForm и настроить метод get_users (). У меня есть пользовательская модель пользователя, и вместо поля «is_active» у меня есть «active», и это вызывает ошибку

Невозможно разрешить ключевое слово «is_active» в поле. Доступны следующие варианты: активный,> администратор, электронная почта, 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,'crypto/password_reset.html', {'form' : 
    form})

Я ожидаю, что метод get_users () проверит «активный» фильтр вместо «is_active» или, что еще лучше, решение о том, как переименовать поля модели и выполнить миграции, чтобы у меня снова были правильные имена полей

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...