3

Django メッセージでユーザーにメッセージを表示する方法に関するドキュメントを読んでいます。ビューにメッセージを追加して呼び出すには、次のように指定します。

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

2 行目の 2 番目をどこに置くべきかわかりません。これが私の見解です。

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

例を使用して、2行目を表示できます。

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 に答える