2008-11-14 39 views
6

Nói rằng tôi có hình thức đơn giản này:Biểu mẫu Django - Cách không xác thực?

class ContactForm(forms.Form): 
    first_name = forms.CharField(required=True) 
    last_name = forms.CharField(required=True) 

Và tôi có một giá trị mặc định cho một lĩnh vực nhưng không phải là khác. Vì vậy, tôi thiết lập nó như thế này:

default_data = {'first_name','greg'} 
form1=ContactForm(default_data) 

Tuy nhiên bây giờ khi tôi đi để hiển thị nó, Django cho thấy một lỗi xác nhận nói last_name được yêu cầu:

print form1.as_table() 

cách chính xác để làm điều này là gì? Vì đây không phải là dữ liệu mà người dùng đã gửi, chỉ dữ liệu tôi muốn điền trước.

Lưu ý: bắt buộc = False sẽ không hoạt động vì tôi muốn nó bắt buộc khi người dùng gửi dữ liệu. Ngay khi tôi lần đầu tiên hiển thị biểu mẫu trên trang, tôi sẽ không có giá trị mặc định.

Trả lời

10

Trình tạo biểu mẫu có thông số initial cho phép cung cấp giá trị mặc định cho trường.

+1

Mặc định có nghĩa là phải làm gì khi người dùng không làm gì cả. Rỗng và bắt buộc sẽ xung đột. Ban đầu có nghĩa là những gì để hạt giống các hình thức với, ngay cả khi nó sẽ không vượt qua xác nhận sau này. –

0

Từ các tài liệu django là thế này:

from django import forms 
class ContactForm(forms.Form): 
    subject = forms.CharField(max_length=100) 
    message = forms.CharField() 
    sender = forms.EmailField() 
    cc_myself = forms.BooleanField(required=False) 

Các "yêu cầu = False" nên tạo ra hiệu ứng bạn đang sau.

+0

Vâng, tôi muốn nó được yêu cầu khi người dùng gửi dữ liệu. Ngay khi tôi lần đầu tiên hiển thị biểu mẫu trên trang, tôi sẽ không có giá trị mặc định. (cập nhật câu hỏi với điều này) – Greg

1

Ngoài ra nó có thể tự xác nhận và sai sót rõ ràng sau: form.errors.clear()

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