2012-07-15 2 views
1

에서 나는 다음과 같은 형식의 형식을 시도하고 wtforms 사용. 그래서 나는 일을 evrything 가지고 있지만 'FormField'래핑 가져옵니다 html 테이블이 필요하지 않습니다 - 그래서 우회/무시 방법?오버라이드 (override)하는 HTML 형식 양식 필드 WTForms

class WeekdayHoursForm(BaseForm): 

    hours = [(str(x+1), str(x+1)) for x in range(12)] 
    mins=[('00',':00'),('15',':15'),('30',':30'),('45',':45')] 

    fromHour = SelectField('',choices=hours) 
    fromMin = SelectField('',choices=mins) 
    toHour = SelectField('',choices=hours) 
    toMin = SelectField('',choices=mins) 
    closed = BooleanField('Closed','0') 

class AddListingForm(BaseForm): 
    monday = FormField(WeekdayHoursForm) 
    tuesday = FormField(WeekdayHoursForm) 

    etc... 

내가 생략 한

<div class="wrapper-block weekday" id="mon"> 
    {{ form.monday.label }} {{ form.monday() }} 
</div> 

<div class="wrapper-block weekday" id="tues"> 
    {{ form.tuesday.label }} {{ form.tuesday() }} 
</div> 

내보기 생성 된 HTML 그러나 필요하다면 나는 그것을에 붙여 넣을 수 있습니다 - 나는 양식 필드가 'TableWidget'사용주의 wtforms 오전하지만이 설정 위치를 몰라 'with_table_tag = False'?

답변

1

모든 wtforms.fields.Field 하위 클래스는 필드 렌더링을 재정의하는 데 사용할 수있는 widget이라는 키워드 인수를 사용합니다. 사용 가능한 WTForms 위젯 in their docs에 대한 자세한 내용을 볼 수 있습니다.

당신은 당신이 (가) ListWidget 내장 사용할 수있는 테이블이 아닌 목록을 사용하고자하는 경우 :

# ... snip ... 
class AddListingForm(BaseForm): 
    monday = FormField(WeekdayHoursForm, widget=ListWidget) 
    tuesday = FormField(WeekdayHoursForm, widget=ListWidget) 
+0

감사합니다 - 나는 문서를 협의 그러나 아직도 확실하지 않았다/방법 위젯에 전달 . – rebelbass