Sto usando questi 3 modelli (semplificati):
class Model1(models.Model):
field1 = models.CharField(max_length=25)
class Model2(models.Model):
field1 = models.CharField(max_length=25)
class Model3(models.Model):
model1 = models.ForeignKey(Model1)
model2 = models.ForeingKey(Model2)
Ho un modulo per Model1 e un formset per Model2 che funzionano ma il problema è che per ogni Model2 nel formset voglio che ci sia anche un Model3 che collega Model2 a Model1.
Come aggiungo Model3 in modo che venga compilato per ogni Model2 nel formset?
Ho provato a trovare una soluzione usando inlineformsets o modelformset, ma non li capisco davvero, non so nemmeno se è la giusta direzione da seguire.
Sto cercando qualcosa che mi indichi la giusta direzione.
risposte:
1 per risposta № 1Supponendo che la mia domanda di cui sopra sia lungo le linee giuste, quindi nella parte di gestione POST della tua vista:
if model_one_form.is_valid() and model_two_formset.is_valid():
obj_one = model_one_form.save()
for model_two_form in model_two_formset:
obj_two = model_two_form.save()
obj_three = Model3.objects.create(model1=obj_one, model2=obj_two)
Sembra che qualcosa di questo semplice possa essere fatto meglio usando un semplice ManyToManyField, o se è necessario accedere a Model3, quindi lo stesso ma usando il through
discussione. Vedere https://docs.djangoproject.com/en/1.10/ref/models/fields/#django.db.models.ManyToManyField.through Certo, il tuo caso potrebbe essere più complicato di quello che hai indicato nella tua domanda.