![](/img/trans.png)
[英]Django: save() got an unexpected keyword argument 'commit'
[英]Model.save() got an unexpected keyword argument 'commit' django error
我正在嘗試實現注冊表單,但我得到了這個錯誤: Model.save() got an unexpected keyword argument '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
視圖.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
沒有提交參數,請參閱此處詳細信息。 所以從new_user.save(commit=False)
中刪除commit=False
。 如果您查看代碼, new_user
是 model new_user = CustomUser(email=user_email)
的實例,而不是表單實例。
可能你對Form.save
方法感到困惑。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.