2009-07-07 4 views
0

일반 응용 프로그램을 개발 중입니다. 어느 모델에도 부착 할 수있는 Foo 개체를 처리한다고 가정합시다. 템플릿에서 django - 일반 응용 프로그램보기에서 양식 오류를 반환합니다.

을하는 형태는 get_foo_form 템플릿 태그에 의해 표시 될 수있다 :

{% get_foo_form for object as form %} 

오브젝트에 부착 될 foo를 개체이다.

양식은 foos 응용 프로그램보기에 게시됩니다. 양식이 유효한 경우 모든 것이 정상입니다. 새 foo이 저장되고보기가 이전 페이지로 리디렉션되고 (양식의 '다음'인수를 통해) 새 foo이 잘 표시됩니다.

그러나 양식이 유효하지 않은 경우 분실됩니다. 같은 경우에 비슷한 응용 프로그램 인 django.contrib.comments에는 사용자에게 오류를 수정하도록 요청하는 중개 페이지가 있습니다. 그러나 중간 페이지를 표시하고 싶지는 않습니다. 오류가있는 이전 페이지를 표시하고 싶습니다. 리디렉션은 이전 페이지로 오류 메시지를 전달해야하므로 여기서는 충분하지 않습니다.

내가하려는 일을 수행 할 수있는 방법이 있습니까? 아니면 전체 구조를 변경해야합니까?

답변

0

일반 모델을 사용하는 앱을 사용하는 경우 게시물 처리보기에서 양식의 유효성을 검사 한 후 오류 메시지를 게시보기로 전달하는 가장 좋은 방법은 세션을 사용하여 메시지를 저장하고 다시 리디렉션하는 것입니다.

감사합니다. +1부터 AlbertoPL까지 도와주세요.

+0

무슨 뜻입니까? 고맙습니다! –

2

당신이해야 할 일은 이전 페이지로 돌아갈 때 사전에 오류 메시지를 추가하기 만하면됩니다. 그런 다음 HTML에 태그가 있는지 추가하여 오류가 있는지 확인하고 필요한 경우 적절한 오류를 표시하십시오.

오류 메시지를 목록에 저장 한 다음이를 render_to_response 호출의 사전 매개 변수 중 하나로 사용할 수 있습니다.

+0

@AlbertoPL post_foo보기는 게시물 요청을 가져 와서 양식이 유효한지 확인합니다. 유효한 경우 foo를 저장하고 레코드를 표시하는보기로 다시 리디렉션합니다. 유효하지 않으면 오류 변수를 전달해야합니다. 내가 그것을 사용하는 모든 변수를 전달할 수 없기 때문에 나는 httpresponseredirect를 사용할 수 없습니다. 포스트 뷰는 다른 뷰 (메인 애플리케이션의 레코드를 보여주는)가 무엇인지 알지 못하거나 신경 쓰지 않기 때문에 render_to_response를 사용할 수 없습니다. – shanyu

+0

오, 이런 경우, 포스트 뷰가 오류 메시지를 전달하기 위해 호출 할 수있는 다른 뷰에서 함수를 추가 할 수 있습니까? 그런 다음 해당 오류 메시지가있는 페이지를 렌더링하는 것이 그 견해에 달려 있습니다. – AlbertoPL

+0

내가 무슨 뜻인지 예를 들어 설명해 주시면 정말 감사하겠습니다. 무슨 뜻인지 모르겠네요. – shanyu

관련 문제