2016-11-11 3 views
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}) 

:

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

내가 두 번째 두 번째 줄을 넣어 위치를 모르겠어요, 이것은 내 생각이다 표시 할 메시지 및 가입 및 사용자 입력에 대한 사용자 감사. 그것은 유효한 양식 제출에 성공 URL로 리디렉션 관습을 염두에두고, 코드를한다고

답변

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 
      messages.add_message(request, messages.INFO, 'Hello world.') 
      return HttpResponseRedirect('/thank-you-page/') 

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

노트 그의 양식이 유효하지 않습니다 (템플릿을 적절하게 설정했다고 가정). 문제가 있다고 말하는 것보다는 문제가 무엇인지 말하는 것이 좋습니다.

+0

언제 메시지가 나타 납니까? 당신이 리디렉션 된 페이지에 도착하면? 왜냐하면'HttpResponseRedirect' 경로를 통과 할 때 404 오류가 발생하기 때문입니다. 내 응용 프로그램 URL은'localhost : 8000/checkin/sign_up'에있는보기와 함께 'localhost : 8000/checkin /'입니다. 그러나'/ sign_in /'인수를 주려고 할 때 (그냥 내가 페이지로 리디렉션한다고 가정 해 봅시다. 어디에서 로그인했는지)를'HttpResponseRedirect'로 바꾸면'localhost : 8000/checkin/sign_in'으로 리다이렉트하지 않고 대신'localhost : 8000/sign_up'으로 리다이렉트합니다. – Amon

+1

'/ thank-you-page /'는 예제 일 뿐이므로 사이트에 가장 적합한 페이지를 선택하십시오. 사용자를 다시 로그인 페이지로 리디렉션하는 것은 의미가 없습니다. 일반적으로 대부분의 사이트에는 대시 보드 또는 홈 화면이있어 사용자가 로그인 후 전송됩니다 – e4c5

+0

하지만 리디렉션되는 위치의 문제를 해결할 수 있습니까? 다른보기를 작성하고 다시 확인해 보겠습니다. – Amon

관련 문제