2013-05-22 40 views
6

tôi là tạo ra một hình thức html với wtforms như thế này:WTForms RadioField giá trị mặc định

<div class="control-group"> 
    {% for subfield in form.time_offset %} 
    <label class="radio"> 
     {{ subfield }} 
     {{ subfield.label }} 
    </label> 
    {% endfor %} 
</div> 

lớp mẫu của tôi là như thế này:

class SN4639(Form): 
    time_offset = RadioField(u'Label', choices=[ 
     ('2', u'Check when Daylight saving has begun, UTC+02:00'), 
     ('1', u'Check when Daylight saving has stopped, UTC+01:00')], 
     default=2, validators=[Required()]) 

Khi tôi bây giờ mở biểu mẫu chỉnh sửa, tôi nhận được thông qua SQL giá trị 1 hoặc 2 - làm thế nào tôi có thể cài đặt trước radiobutton specifiy?

+0

Nếu bạn muốn thiết lập mặc định ở dạng mà lý do nào khiến bạn muốn làm điều đó trong html? Bạn có muốn hai giá trị mặc định không? – Denis

+0

Ở biểu mẫu tạo, tôi đặt mặc định, như bạn có thể thấy, trong lớp học. Nhưng bây giờ tôi đang tạo một mẫu chỉnh sửa và ở đó nó phải được chọn trước. ví dụ. "nam/nữ" và khi tôi nhận được giá trị 'm' từ db, nam nên được chọn ... Làm thế nào tôi có thể làm điều này? – Kilrathy

+0

mặc định = yourObjectFromDB.sex ???? – Denis

Trả lời

2

Nếu tôi hiểu câu hỏi của bạn đúng, bạn muốn có các hình thức render với một sự lựa chọn lựa chọn trước (chứ không phải trả lại một lựa chọn mặc định nếu không có giá trị được gửi mẫu) ...

Những gì bạn có thể làm là xây dựng biểu mẫu trong khi đặt giá trị được chọn trước:

myform = SN4639(time_offset='2') 

Và sau đó vượt qua myform cho mẫu của bạn được hiển thị.

0

Form.__init__ lấy đối số từ khóa obj= sẽ điền biểu mẫu từ đối tượng đã cho nếu không có biểu mẫu hoặc mặc định khác được cung cấp. Vượt qua kết quả từ cơ sở dữ liệu đến đó và nó sẽ hoạt động.

5

mặc định = 2 cần là kiểu chuỗi, không phải int:

class SN4639(Form): 
    time_offset = RadioField(u'Label', choices=[ 
     ('2', u'Check when Daylight saving has begun, UTC+02:00'), 
     ('1', u'Check when Daylight saving has stopped, UTC+01:00')], 
     default='2', validators=[Required()]) 
Các vấn đề liên quan