2011-10-19 31 views
14

Tôi muốn thêm hộp kiểm vào trường đăng ký của mình để sử dụng các điều khoản &. Làm thế nào tôi có thể viết một phương pháp sạch để xác nhận điều này.Xác nhận đầu vào hộp kiểm trong Django

Tôi đã viết một phương pháp sạch nơi tôi muốn chắc chắn rằng tôi đang bắt giá trị checkbox một cách chính xác:

def clean_terms(self): 
     if self.cleaned_data["terms"] == u'on': 
      raise forms.ValidationError(
       "You have to accept terms&conditions to complete registration" 
      ) 

Kết quả là khi tôi điền vào mẫu đăng ký của tôi và gửi nó, nó mang lại cho tôi xác nhận này lỗi:

Điều khoản & Điều kiện: Chọn lựa chọn hợp lệ. trên không phải là một trong những lựa chọn có sẵn.

Vậy làm cách nào tôi có thể hiểu rằng hộp kiểm được chọn và cách triển khai đúng hạn cụm từ & hộp kiểm sử dụng?

lĩnh vực hộp kiểm của tôi:

terms = forms.ChoiceField(
    label="Terms&Conditions", 
    widget=forms.CheckboxInput() 
) 
+0

Có thể bạn sẽ cho chúng tôi biết cách bạn xác định hộp kiểm ở địa điểm đầu tiên? –

Trả lời

21

Không sử dụng một ChoiceField cho một checkbox. Sử dụng BooleanField.

terms = forms.BooleanField(
    error_messages={'required': 'You must accept the terms and conditions'}, 
    label="Terms&Conditions" 
) 

Bạn thậm chí không cần phương thức clean_.

Các vấn đề liên quan