在FormView django中保存m2m
我正在尝试将m2m字段保存在在FormView django中保存m2m,django,django-forms,django-views,manytomanyfield,Django,Django Forms,Django Views,Manytomanyfield,我正在尝试将m2m字段保存在FormView中 这是我的密码: class ProductorPropietarioView(FormView): form_class = FormPropietario success_url = '/' template_name = 'productores/propietario.html' def form_valid(self,form): form.save(commit=False)
FormView
中
这是我的密码:
class ProductorPropietarioView(FormView):
form_class = FormPropietario
success_url = '/'
template_name = 'productores/propietario.html'
def form_valid(self,form):
form.save(commit=False)
form.save()
form.save_m2m()
return super(ProductorPropietarioView,self).form_valid(form)
models.py
class Persona(models.Model):
predio = models.ForeignKey(InfoPredioGeneral,related_name='predio+')
rol = models.ManyToManyField(RolPersona)
tipo_identificacion = models.ForeignKey(TipoIdentificacion,related_name='tipo identificacion+',blank=True,null=True)
numero_identificacion = models.CharField(max_length=100,blank=True,null=True)
forms.py
class FormPropietario(ModelForm):
class Meta():
model = Persona
fields = '__all__'
我不能让它工作。我知道首先我必须设置为False,然后保存表单,然后保存m2m。我已经试过只使用form.save()
我做错了什么?尝试按如下方式更改您的
FormView
:
def form_valid(self,form):
f = form.save(commit=False)
f.save()
form.save_m2m()
return super(ProductorPropietarioView,self).form_valid(form)
您是否正在使用
模型表单
?此外,不需要执行form.save(commit=False)
。您只需调用form.save()
即可保存所有数据,包括要保存的多对多数据。@RodXavier是的,这是一个ModelForm,我已经用form.save()尝试过了,但没有保存def form\u valid(self,form):form.save()返回super(ProductorPropietarioView,self)。form\u valid(form)
您能在这里发布您的表格和相关模型吗?