如何在Django中提交后清除表单字段

Fre*_*ins 20 python django django-forms

我是这样的:

def profile(request, username):
if request.method == 'POST':
    if request.user.is_authenticated():
        new_message = Message(author = request.user)
        form = MessagesForm(request.POST, instance = new_message)
    else:
        form = MessagesForm(request.POST)
    if form.is_valid():
        form.save()
else:
    to_user = User.objects.get(username = username)
    form = MessagesForm(initial = {'user': to_user.pk})


return render(request, "profile.html", {'username': username, 'form': form, 'messages': messages})
Run Code Online (Sandbox Code Playgroud)

此表单提交消息并返回相同的页面.我的问题是,提交后我再次看到我的字段充满了我的信息.提交后如何清除?

Yuj*_*ita 26

在表单提交后重定向是标准的,以防止重复.

只需在成功时将重定向返回到表单.

if form.is_valid():
    form.save()
    return http.HttpResponseRedirect('')
Run Code Online (Sandbox Code Playgroud)

  • 如果我不能重定向怎么办?- Django-CMS 中的表单作为站点插件。有什么不同的方法吗? (2认同)
  • 我知道这已经很旧了。但是当我尝试使用“HttpResponseRedirect('')”时,提交后我得到一个空白的白页。表格已成功提交。我使用的是 Django 1.11 (2认同)

Kar*_*mar 21

保存表单而不是显示post dict指定空表单

form = EmployeeForm()
    if request.method == "POST":
        pDict = request.POST.copy() 
        form = EmployeeForm(pDict) #if not valid shows error with previous post values in corresponding field
        if form.is_valid():
            form.save()
            form = EmployeeForm() # show empty form no need to give HttpResponseRedirect()
Run Code Online (Sandbox Code Playgroud)

  • 这应该是问题的答案 (2认同)