已关闭。此问题需要更多focused。目前不接受回答。
**要改进此问题吗?**更新此问题,使其仅针对editing this post的一个问题。
8天前关闭。
Improve this question的
在这段代码中解释了下面提到的代码块的工作
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User
from django import forms
class NewUserForm(UserCreationForm):
CHOICES=(
('Doctor','D'),
('Patient','P'),
('Manager','M')
)
email = forms.EmailField(required=False)
username = forms.CharField(required=True)
phone = forms.IntegerField(required=False)
role = forms.CharField(widget=forms.Select(choices=CHOICES))
password1 = forms.CharField(required=True)
password2 = forms.CharField(required=True)
class Meta:
model = User
fields = ("email","username","phone","role","password1","password2")
def save(self,commit=True):
user = super(NewUserForm,self).save(commit=False)
user.email = self.changed_data['email']
if commit:
user.save()
return user
字符串
请解释一下
def保存和类Meta,这里.保存(commit=False)有什么用。
1条答案
按热度按时间1hdlvixo1#
从您的评论中,我看到您不理解为什么父级的保存是用
commit=False
调用的。好吧,“提交”背后的想法是你保存完整的更改数据。你不去更改和保存。你首先更改所有内容,然后提交“更改集”。
你调用父保存而不提交修改,因为你仍然要设置
user.email
变量。你只在那之后提交:字符串