如何保存具有ManyToMany关系的用户表单



我是django的初学者,正在尝试创建一个web应用程序。我正在尝试保存用户表单,但我遇到的问题是它没有在数据库中保存user_user_groups表中组的ManyToMany关系

我的型号

class User(AbstractUser):
state = models.BooleanField(default=True)
def __str__ (self):
return '{}'.format(self.username,self.state,self.groups)

我的表单

from django.contrib.auth.models import Group
class UserForm(UserCreationForm):
username = forms.CharField(label="User",widget=forms.TextInput(attrs= 
{"class":"form-control"}))
state = forms.CheckboxInput()
groups = forms.ModelMultipleChoiceField(queryset=Group.objects.all(),
widget=forms.CheckboxSelectMultiple,required=True)
password1 = forms.PasswordInput()
password2 = forms.PasswordInput()
class Meta:
model = User
fields = [
"username",
"password1",
"password2",
"state",
"groups"
]

我的视图

def create_user(request):
if request.method == 'POST':
form = UserForm(request.POST)
form.fields['username'].help_text = None
form.fields['password1'].help_text = None
form.fields['password2'].help_text = None
if form.is_valid():
form.save()
return redirect('/')
return render(request, 'user/user_form.html',{'form': form})
else:
form = UserForm()
return render(request, 'user/user_form.html',{'form': form})

添加此代码,即可使用

def create_user(request):
if request.method == 'POST':
form = UsuarioForm(request.POST)
if form.is_valid():
form2=form.save(commit=False)
form2.save()
form.save_m2m()
return redirect('/')
return render(request, 'user/user_form.html',{'form': form})
else:   
form = UsuarioForm()
return render(request, 'user/user_form.html',{'form': form})

最新更新