3

我正在阅读有关如何使用 Django 消息向用户显示消息的文档。它说为了在您的视图中添加一条消息以调用:

from django.contrib import messages
messages.add_message(request, messages.INFO, 'Hello world.')

我不确定第二行放在哪里,这是我的观点:

def sign_up(request):

    if request.method == "POST":
        form = IdForm(request.POST)
        if form.is_valid():
            post = form.save()
            post.save()
            ID = post.id_text
            return HttpResponse('Thank you')
        else:
            return HttpResponse('That text is invalid')
    else:
        form = IdForm()
    return render(request, 'checkin/base.html', {'form': form})

我希望消息出现并感谢用户注册并显示他们的输入。

4

2 回答 2

3

请记住,在提交有效表单时通常会重定向到成功 url,您的代码应该如下所示:

def sign_up(request):

    if request.method == "POST":
        form = IdForm(request.POST)
        if form.is_valid():
            post = form.save()
            post.save()
            ID = post.id_text
            messages.add_message(request, messages.INFO, 'Hello world.')
            return HttpResponseRedirect('/thank-you-page/')

    else:
        form = IdForm()
    return render(request, 'checkin/base.html', {'form': form})

请注意,这也会导致用户被告知为什么他的表单是无效的(假设您已经正确设置了模板)。说出问题所在而不是说有问题总是好的。

于 2016-11-11T02:01:24.963 回答
1

您可以通过示例将第二行放在视图中:

def contact(request):

if request.method == 'POST':
    name = request.POST.get('name')
    email = request.POST.get('email')
    password = request.POST.get('password')
    textarea = request.POST.get('textarea')
    contact = Contact(name = name,email = email,password = password,textarea = textarea,date=datetime.today())
    contact.save()
    messages.success(request, 'Form has submitted')

return render(request,"contact.html")
于 2020-12-29T07:21:08.477 回答