Model.save() получил неожиданный аргумент ключевого слова 'commit' Ошибка django
пытаюсь реализовать форму регистрации и получаю вот такую ошибку: Model.save() получил неожиданный аргумент ключевого слова 'commit'
И я написал метод сохранения, но все равно получаю ошибку
forms.py
class RegisterForm(forms.ModelForm):
class Meta:
model = CustomUser
fields = ['email', 'password', 'password2']
def save(self, commit=True, *args, **kwargs):
user = super(RegisterForm, self).save(commit=False)
user.email = self.cleaned_data['email']
user.password = self.cleaned_data['password']
if commit:
user.save()
return user
views.py
class UserRegisterView(View):
User = get_user_model()
form_class = forms.RegisterForm
template_name = 'account/register.html'
def dispatch(self, request, *args, **kwargs):
if request.user.is_authenticated == True:
return redirect('home:home')
return super().dispatch(request, *args, **kwargs)
def get(self, request):
form = self.form_class()
return render(request, self.template_name, {'form': form})
def post(self, request):
form = self.form_class(request.POST)
if form.is_valid():
user_email = form.cleaned_data.get('email')
user_password = form.cleaned_data.get('password')
new_user = CustomUser(email=user_email)
new_user.set_password(user_password)
new_user.is_active = False
new_user.save(commit=False)
activateemail(request, new_user, user_email)
return redirect('account:user_login')
return render(request, self.template_name, {'form': form})
Django Model.save
не имеет параметра commit, смотрите здесь подробно. Поэтому удалите commit=False
из new_user.save(commit=False)
. Если вы посмотрите код, new_user
является экземпляром модели new_user = CustomUser(email=user_email)
, а не экземпляром формы.
Возможно, вы путаете метод Form.save
.