2012-03-06 38 views
7

làm cách nào tôi có thể khai báo giá trị ban đầu của nút radio?giá trị ban đầu trong nút radio biểu mẫu django

form.py

YESNO = (
    ('Yes','Yes'), 
    ('No', 'No'), 
) 
class MyForm(forms.Form): 
    like = forms.ChoiceField(widget=forms.RadioSelect, choices=YESNO) 

myhtml.html

{{form.like}} 

tôi cố gắng để đưa:

like = forms.ChoiceField(widget=forms.RadioSelect, choices=YESNO, initial={'Yes':'Yes'}) 

khi tôi chạy mã của tôi, nút radio của tôi vẫn chưa được chọn. .

+1

ban đầu = { 'như': 'Có'} –

Trả lời

3

tôi đặt giá trị ban đầu trực tiếp i n của tôi views.py ...

def myviews(request): 
    ..... 
    form = MyForm({'like':'Yes'}) 
    ... 
+2

cho một nút radio, điều này có vẻ là ok, cho các lĩnh vực khác, đặc biệt là những ai yêu cầu người dùng nhập vào như văn bản, điều này sẽ kích hoạt xác nhận. – Jingo

+8

-1. Đây là tham số 'dữ liệu', như Jingo nói, kích hoạt xác thực. Sử dụng tham số 'initial' thay thế. –

+0

Đồng ý. Làm điều này gây ra những thứ như CharFields trống trên cùng một biểu mẫu để hiển thị lỗi xác thực khi tải trang thay vì sau khi gửi. – shacker

1

Có, điều này nên được thực hiện trong chế độ xem, nhưng cú pháp trong câu trả lời được chấp nhận là không chính xác vì nó sẽ kích hoạt xác thực trường trên tất cả các trường trước khi gửi biểu mẫu. Sử dụng thay vì:

def myviews(request): 
    ..... 
    form = MyForm(initial={'like':'Yes'}) 
    ... 
Các vấn đề liên quan