Как написать сообщение Django в коде ваших просмотров
Я читаю документацию о том, как отобразить сообщение пользователю с сообщениями 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})
Я хочу, чтобы появилось сообщение, и благодарю пользователя за регистрацию и отображение его ввода.
2 ответа
Решение
Учитывая, что при правильной отправке формы обычно перенаправляют на 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})
обратите внимание, что это также приводит к тому, что пользователю сообщают, почему именно его форма недействительна (при условии, что вы правильно настроили шаблон). Всегда лучше сказать, в чем проблема, чем сказать, что есть проблема.
Вы можете представить вторую строку с примером:
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")