django display message after POST form submit

前端 未结 5 1682
天涯浪人
天涯浪人 2020-12-24 07:17

I have a page with a POST form, that have a action set to some url.
i.e assume this page url is /form_url/ : ..

The view in /sub

5条回答
  •  -上瘾入骨i
    2020-12-24 08:05

    You don't need to do a redirect to clear the form data. All you need to do is re-instantiate the form:

    def your_view(request):
        form = YourForm(request.POST or None)
        success = False
        if request.method == 'POST':
            if form.is_valid():
                form.save()
                form = YourForm()
                success = True
        return render(request, 'your_template.html', {'form': form})
    

    If the user refreshes the page, they're going to initiate a GET request, and success will be False. Either way, the form will be unbound on a GET, or on a successful POST.

    If you leverage the messages framework, you'll still need to add a conditional in the template to display the messages if they exist or not.

提交回复
热议问题