2010-05-30 2 views
0

다양한 모델에서 생성 된 양식이 있으며 다양한 값이 채워져 다른 테이블에 앉아 있습니다. 따라서이 경우에는 내장 된 장고를 사용하지 않았습니다 forms (즉, 모델에서 양식을 만들지 않음).Django는 모델의 양식을 사용하여 "not"를 형성합니다.

이제 자체 제작 된 양식에서 게시 된 데이터는 view1에 의해 처리되므로 적절하게 데이터를 정리해야합니다. 어떻게 그것에 대해 이동하고 다양한 기능 clean를 사용하고 (뷰 자체에서 유효성 검사 논리를하지 바람직하고!)

편집validation errors을 정의합니까 :
내가 ==> 3dB 테이블에 정의 된 세 모델이있다. 이제 모델 중 2 개의 데이터를 표시하는 양식을 작성한 다음이 양식의 데이터를 세 번째 테이블에 저장합니다. 이 시나리오에서는 직접 양식을 작성했으며이 양식의 입력을 검증하기 위해 양식 기능을 사용하려고합니다. 어떻게해야합니까? 이 inbuilt 양식 기능을 사용할 수 없습니다.이 자체 양식 (모델의 양식 사용 안함)의 유효성을 검사하는 위치 및 방법은 무엇입니까?

+0

좀 더 구체적으로 말씀해 주시겠습니까? 양식을 사용하지 않지만 양식 기능인 정리 오류 및 유효성 검사 오류에 대해 이야기합니다. – KillianDS

+0

모델을 사용하지 않고 django 폼을 사용할 수 있습니다. 올바르게 이해할 경우 POST 데이터의 유효성을 검사하는 방법을 묻습니다. –

+0

위의 질문 자체에서 편집하십시오. @rebus - 그렇습니다. 그런 다음 어떻게해야할까요? – zubinmehta

답변

2

나는 왜 당신이 붙박이 모양 검증 방법을 이용할 수 없는지 아직도 확실하지 않다. 표준을

class MyForm(forms.Form): 
    a = forms.CharField() 
    b = forms.CharField() 
당신이 채울

제출 양식을 :

class A(models.Model): 
    a = models.CharField() 

class B(models.Model): 
    b = models.CharField() 

class C(models.Model): 
    c = models.CharField() 
    d = models.CharField() 

A.aB.b의 값은 양식을 통해 C.cC.d 모델에 끝낼 필요가 있다고 가정합니다

모델을 가정 유효성 검사 :

if request.method == "POST": 
    form = MyForm(request.POST) 
    if form.is_valid(): 
     model3 = C() # create 3rd model objects 
     model3.c = form.cleand_data['a'] # and assign values from form to it 
     model3.d = form.cleand_data['b'] 
     model3.save() # save the data into the 3rd table 

또는 양식 유효성 검사 대신 model validation을 사용할 수 있지만 다소 차이는 있습니다.

또는 질문을 올바르게 읽지 못하고 있습니까? 예제 코드는 항상 환영합니다.

0

보기와 양식간에 있어야하는 유일한 상호 작용은 데이터가 검증, 그리고 그것이 나 같이 유효하지 않은 경우

if form.is_valid(): 
    do_something() 

그렇지 않으면 모든 것이 clean_fieldname() 깨끗한() 메소드를 사용하여 폼 클래스에서 실시 할 필요가 무엇을 할 수 있습니다. 양식 내에서이를 정의하는 방법에 대한 자세한 내용은 http://docs.djangoproject.com/en/dev/ref/forms/validation/을 참조하십시오.

관련 문제