Pergunta

Este post está relacionado a isso:Adicione a linha às inlines dinamicamente em Django Admin

Existe uma maneira de alcançar a adição de formulários embutidos sem usar JavaScript? Obviamente, haveria uma refrescamento de página envolvido.

Então, se o formulário tivesse um botão chamado 'Adicionar' ...

Achei que poderia fazer assim:

if request.method=='POST':
  if 'add' in request.POST:
    PrimaryFunctionFormSet = inlineformset_factory(Position,Function,extra=1)
    prims = PrimaryFunctionFormSet(request.POST)

O que eu pensei que adicionaria 1 de cada vez e preencha o formulário com os dados da postagem. No entanto, parece que o extra = 1 não adiciona 1 aos dados da postagem.

Foi útil?

Solução

Entendi.

Às vezes é a solução mais simples. Basta fazer uma cópia da solicitação.

por exemplo..

if request.method=='POST':
  PrimaryFunctionFormSet = inlineformset_factory(Position,Function)
  if 'add' in request.POST:
    cp = request.POST.copy()
    cp['prim-TOTAL_FORMS'] = int(cp['prim-TOTAL_FORMS'])+ 1
    prims = PrimaryFunctionFormSet(cp,prefix='prim')

Em seguida, basta cuspir o formulário normalmente. Mantém seus dados, adiciona um editor em linha.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top