0
Je suis en train d'enregistrer un champ m2m dans un FormView
.Enregistrer m2m dans FormView django
Voici mon code:
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__'
Je ne peux pas obtenir ce travail. Je sais que je dois d'abord mettre False puis enregistrer le formulaire et ensuite enregistrer le m2m. J'ai déjà essayé seulement avec form.save()
Qu'est-ce que je fais mal?
Utilisez-vous un 'ModelForm'? En outre, il n'est pas nécessaire de faire 'form.save (commit = False)'. Vous pouvez simplement appeler 'form.save()' puis toutes les données, y compris les données many-to-many à enregistrer. –
@RodXavier Oui, un ModelForm, je déjà essayé seulement avec form.save() mais ne sauve pas \t 'def form_valid (auto, forme): \t \t \t \t form.save() \t \t super retour (ProductorPropietarioView, self) .form_valid (formulaire) ' – dfrojas
Pouvez-vous poster votre formulaire et les modèles concernés ici? –