django – como implementar um mecanismo de publicação em duas etapas

Eu sou novo em desenvolvimento web e django então talvez essa seja uma pergunta noob.

Eu quero fazer o seguinte:

  1. Peça ao usuário para preencher algum formulário e enviá-lo.
  2. Em seguida, analise e formate o conteúdo e exiba-o de volta ao usuário para que ele o verifique.
  3. O usuário pode aceitar o resultado ou voltar para a visualização anterior, atualizar dados e reenviar.

Isso é tanto quanto eu posso pensar:

views.py

def add_content(request): if request.method == 'POST': form = AddContentForm(request.POST) if form.is_valid(): content = form.save(commit=False) return verify_content(request, content) else: form = AddContentForm() return render(request, 'myapp/add_content.html', {'form' : form}) def verify_content(request, content): return render(request, 'myapp/verify_content.html', {'content' : content}) 

O template verify_content obviamente conterá dois botões (‘back’, ‘ok’), mas eu não sei como passar o object de conteúdo para um view para salvá-lo no database, ou enviá-lo de volta para o view anterior de lá . Devo usar js? Posso fazer isso apenas com código do lado do servidor?

Talvez toda a minha lógica esteja errada. Devo salvar o object no database antes da verificação e, em seguida, excluí-lo, se necessário (parece feio)? O que é uma boa maneira de implementar isso?

Agradeço antecipadamente pelo seu tempo.

Você poderia usar a session de usuários para isso:

 request.session['content'] = content 

e na visão em que o usuário deve verificar sua input:

 content = request.session['content'] 

e voilá você tem o conteúdo entre 2 visualizações.

O Django também garante que os usuários não consertem seus dados salvando-os no servidor ou em um cookie assinado.

Eu salvaria o formulário com commit = True na exibição add_content e adicionaria um campo verificado ou algo ao modelo. Em seguida, você pode acrescentar o parâmetro pk como GET ao link que o levará de volta à visualização add_content da verificação. Você pode extrair o parâmetro de request.GET dict.