В CreateView можно использовать две формы (Django :3.1.7)

#python-3.x #django-views

Вопрос:

Я создал его таким образом, но я хотел понять, как сделать что-то подобное в CreateView:

Модель:

 class ItemA(models.Model):
    itema = models.CharField(max_length=30)


class ItemB(models.Model):
    itemb = models.CharField(max_length=30)
    itemdeFora = models.ForeignKey(ItemA, on_delete=models.CASCADE)
 

Вид:

 class ItenABVIEW(View):
    template_name = 'superforms.html'

    def get(self, request):
        formulario1 = ItemAForms()
        formulario2 = ItemBForms()
        contexto = {'formulario1':formulario1,'formulario2':formulario2}

        return render(request, self.template_name, contexto)

    def post(self,request):
        formulario1 = ItemAForms(request.POST or None)
        formulario2 = ItemBForms(request.POST or None)
        print(formulario2.data['itemb'])
        print(formulario1.data['itema'])
        if formulario1.is_valid() and formulario2.is_valid() :
            chave = ItemA(itema=formulario1.data['itema'])
            chave.save()
            ItemB(itemb=formulario2.data['itemb'], itemdeFora_id=chave.pk).save()
            formulario1 = ItemAForms()
            formulario2 = ItemBForms()

        contexto = {'formulario1': formulario1, 'formulario2': formulario2}


        return render(request, self.template_name,contexto)
 

Я сделал это таким образом, но я не понимал, как повторить это с помощью CreateView и можно ли использовать две формы одновременно …

Можете ли вы мне помочь 🙂