2011-09-02 2 views
0

양식 데이터 및 유효성 검사가 포함 된 form.py 파일이 있지만 서식 파일에서 양식의 렌더링없이 수동 html 파일을 사용합니다 .py, 템플릿에서 데이터를 게시 한 후 데이터가 유효하지 않은 경우 (form.py에서 유효성 검사) view.py에서 모든 데이터를 템플릿으로 반환하는 방법은 무엇입니까?게시물 데이터를 뷰의 수동 html로 되돌릴 수있는 방법

미안하지만, 내 질문에 너무 명확하게, 내 qestion 어떻게 오류가 발견 된 후 views.py 수동 템플릿을 다시 데이터를 렌더링 할 수 있습니다.

form.py (I 많은 형태 필드 및 일부 검증 할)

class Project_f(forms.Form): 

    slug=forms.CharField(max_length=100) 
    ...... 

views.py

def post_view(request, *args, **kwargs): 

    Pr_form=Project_f(request.POST,request.FILES) 
    if Pr_form.is_valid(): 
    ......... 

     return HttpResponseRedirect('/admin/mpm/project/') 

    '''when Pr_form is not valid''' 

    c={'form': Pr_form} 
    c.update(csrf(request)) 
    return render_to_response('project_form.html',c) 

템플릿

다음

코드 예제

수동 템플릿 form.py를 사용하지 않고 모든 요소는 fo와 동일합니다. rm.py하지만 형식/위젯은 일부 js와 같이 다릅니다.

+1

원하는대로 지정할 수 있습니까? 해야 할 것? 코드 예제를 추가 할 수도 있습니까? 감사합니다 –

+0

http://www.djangobook.com/en/2.0/chapter07/ - "문의 양식 작성"섹션은 필요한 실마리 일 수 있습니다. 그러나 당신이 성취하고자하는 것은 정말로 명확하지 않습니다. – Pill

+0

"어떻게해야 할 것인가와 구체적으로 다른 것을하고 싶습니다. 어떻게 작동시킬 수 있습니까?" 그런 식으로 일하기를 원한다면, 그렇게해라. –

답변

0

양식 개체를 서식 파일로 보내지 않았기 때문에 데이터에 대해서도 유효성을 검사 할 수 있습니다. 어떤 뷰를 제출하든 request 만 테스트하면됩니다. 이전에는 myForm = myForm (data = request.POST) 다음에 myForm.is_valid()가옵니다. HTML에서 만든 양식에 존중받는 "name"요소가 양식 클래스에있는 요소로 설정되어 있는지 확인하십시오.

class MyForm(forms.Form): 
    foo = forms.CharField() 
    bar = forms.CharField() 


def myView(request): 
    if request.POST: 
     myForm = MyForm(data=request.POST) 
     if myForm.is_valid(): 
     """ do stuff """ 
     else: 
     """ do stuff with errors """ 
    else: 
     """ print a page or somthing """ 
0

Q : 오류가 발견 후 내가 다시 views.py에서 수동 템플릿에 데이터를 렌더링 할 수있는 방법? GETPOST 모두 same view에서 처리 할 수 ​​있지만

I 가정 post_viewPr_formPOST에 대한 요청을 처리하는 것이다.

A :Pr_form.is_valid() 반환 FalsePr_form 인스턴스는 적절한 오류 메시지와 사용자가 입력 한 데이터로 채워, 그래서 당신은 같은 Pr_form 인스턴스를 반환하는 경우에, 유효성 검사를 실패한 될 것이다 템플릿에서 템플릿에 Pr_form을 표시하는 방법을 사용자 정의하지 않은 경우 오류 메시지와 사용자가 입력 한 데이터가 표시되어야합니다. here

관련 문제