Два набора форм в одном представлении - django
Я пытаюсь реализовать два набора форм в одном представлении, один из наборов форм должен быть всплывающей модальной формой,
class MobileCollection(models.Model):
mobile = models.ForeignKey(ModelCategory,on_delete=models.PROTECT,related_name='model_category')
qnt = models.IntegerField()
price = models.DecimalField(decimal_places=3,max_digits=20)
class Imei(models.Model):
mobile = models.ForeignKey(MobileCollection,on_delete=models.PROTECT)
imei = models.CharField(max_length=15,unique=True)
serial_no = models.CharField(max_length=7,unique=True,blank=True,null=True)
status = models.BooleanField(default=True)
def __str__(self):
return f'{self.mobile}-{self.imei}'
На странице мы добавляем новый экземпляр MobileCollection , и каждая MobileCollection имеет свой собственный набор imei , если qnt = 10, то мы должны добавить 10 imei
@login_required
def create_collection(request):
item_formset = mcollection(queryset=MobileCollection.objects.none())
imei_formset = imei_modelformset(queryset=Imei.objects.none(),prefix='imei')
if request.POST:
item_formset = mcollection(request.POST)
imei_formset = imei_modelformset(request.POST,prefix='imei')
if imei_formset.is_valid() and item_formset.is_valid() and request.user.is_superuser:
for item in item_formset:
item_obj = child.save(commit=False)
item_obj.save()
for imei in imei_formset:
imei_obj = imei.save(commit=False)
imei_obj.mobile = item_obj
imei_obj.save()
return JsonResponse({'success':True})
else:
return JsonResponse({
'success':False,'error_child_msg':item_formset.errors,'error_imei_msg':imei_formset.errors})
context = {
'item_formset':item_formset,
'imei_formset':imei_formset
}
return render(request,'storage/collection.html',context)
но он сохраняет только последнюю запись элемента и не сохраняет imei, только его экземпляр (из элемента) будет сохранен вот мои наборы форм
mcollection = modelformset_factory(
MobileCollection,form=MobileCollectionForm,fields=
['mobile','qnt','price'],can_delete=True,extra=1)
imei_modelformset = modelformset_factory(Imei,form=ImeiForm,fields=
['imei'],extra=1,can_delete=True)
а также я не уверен, как написать jquery для imei_formset, если вы знаете что-то об этом, пожалуйста, дайте мне знать: я заплачу если это необходимо