Как сохранить формы родителей, детей и внуков в одной форме отправки - django

я создаю приложение для компании мобильной торговли, сценарий таков: каждый счет имеет уникальный invoice number и каждый уникальный date имеет несколько phone models и каждая модель телефона имеет ряд IMEI вот как я создал модель базы данных

class Collection(models.Model):
    admin = models.ForeignKey(User,on_delete=models.PROTECT)
    company = models.ForeignKey(Company,on_delete=models.PROTECT)
    invoice_no = models.IntegerField(unique=True)
    collection_date = models.DateTimeField(default=timezone.now)

class MobileCollection(models.Model):
    collection = models.ForeignKey(Collection,on_delete=models.PROTECT,related_name='collections')
    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)
<<<Я не уверен, как построить представление, в то время как модель

должна увеличиваться динамически, и с увеличением поля MobileCollection в qnt формы MobileCollection должны увеличиваться, например, если Imei мы должны добавить 10 qnt=10 форм, я думал о Imei, но это не работает в моем случае. Пожалуйста, есть ли лучший подход для достижения этой цели? Спасибо заранееinlineformset_factory

Отправляйте несколько форм в контексте и работайте со всеми ними так же, как и с одной формой.

Пример:

class MyView(View):
    template_name = 'my_template.html'
    collection_form = CollectionForm
    mcollection_form = MobileCollectionForm
    # and so on..

    def get(self, request, *args, **kwargs):
        context = {
            'collection_form': collection_form,
            'mcollection_form': mobile_collection_form
        }
        return render(request, self.template_name, context=context)

    def post(self, request, *args, **kwargs):
        collection_form = self.collection_form(request.POST)
        mcollection_form = self.mcollection_form(request.POST)

        if collection_form.is_valid() and mcollection_form.is_valid():
            collection_form.save()
            mcollection_form.save()                
            return # your response, and so on..
    return # your forms above in the post method if the forms are not valid
Вернуться на верх