1

WTForms로 양식 필드를 렌더링하는 데 문제가 있습니다. 저는 webapp 프레임 워크와 장고 템플릿을 GAE에 사용하고 있습니다.WTForm이 필드를 렌더링하지 않습니다.

나는 간단한 프로젝트를 테스트로 만들었고 정상적으로 작동했다. 여기에 더 큰 프로젝트의 일부 코드 문제로 하나 :

template_vars = { 
    'form':ShowBoardForm() 
} 

path = os.path.join(os.path.dirname(__file__),'templates','showboard.html') 
self.response.out.write(template.render(path,template_vars)) 

:

class ShowBoardForm(Form): 
    name = TextField('Name', [validators.Length(max=20)]) 
    email = TextField('Email', [validators.Length(max=20)]) 
    subject = TextField('Subject', [validators.Length(max=20)]) 
    textfield = TextAreaField('Comment', [validators.Length(max=2000)]) 
    filefield = FileField('Image') 

가 그리고 여기에 폼 클래스의 코드 조각은 요청 처리기에서 사용하고 있어요 (I 어떤 관련이없는 코드를 ommited) 여기에 내가 템플릿에 form을 사용하고 있습니다 방법은 다음과 같습니다

... 
<form method='post' action='{{ url }}/post' enctype='multipart/form-data'> 
{{ form.name.label }}{{ form.name }}<br/> 
{{ form.email.label }}{{ form.email }}<br/> 
{{ form.subject.label }}{{ form.subject }}<br/> 
{{ form.textfield.label }}{{ form.textfield }}<br/> 
{{ form.filefield.label }}{{ form.filefield }}<br/> 
<input type='submit' value='ok'/> 
</form> 
... 

문제는 그 대신 나에게 필드의 HTML 표현, form.name,을주는등 ... 템플릿에 이런 종류의 출력이 있습니다 : <form.TextField instance at 0xac261ec> 또는 <form.TextAreaField instance at 0x966e76c> 등 ... 제가 언급 한 테스트 프로젝트에서 똑같은 일을했는데 잘 작동하는 것 같습니다. 여기서 무엇이 잘못 될 수 있습니까?

답변

1

나는 그것을 알아 냈다. 나는 Form, TextFieldTextAreaField 클래스를 정의하는 다른 모듈을 WTForms 클래스 대신 사용하고 있습니다.

관련 문제