Theo hướng dẫn của Django, bạn nên truy cập các trường biểu mẫu bằng cách sử dụng từ điển clean_data. Tôi tự hỏi tại sao tôi không thể truy cập trực tiếp các thuộc tính của biểu mẫu? Hình thức của tôi xác nhận tốt, nhưng khi tôi cố gắng truy cập nó, Django phàn nàn rằng đối tượng không có thuộc tính. Tôi đã thêm một số mã bên dưới mà tôi hy vọng sẽ giúp chẩn đoán sự cố.Truy cập các trường biểu mẫu dưới dạng thuộc tính ở chế độ xem django
Mẫu:
class CustomForm(forms.Form):
description = forms.CharField(widget = forms.TextInput(attrs = {'placeholder' : 'enter some text'}), label = "My form")
Xem:
def process_form(request):
if request.method != 'POST':
raise Http404
myForm = CustomForm(request.POST)
if not myForm.is_valid():
c = RequestContext(request)
return render_to_response('home/index.html', {'form' : myForm }, c)
# debug
print 'Description: ' + myForm.description # this does NOT work
# print 'Description: ' + myForm.cleaned_data['description'] # this does work
tôi nhận được lỗi sau: đối tượng 'CustomForm' không có thuộc tính 'description'. Tôi đã bỏ lỡ điều gì đó trong tài liệu nói rằng tôi không thể làm điều đó?
Tôi hiểu rằng tôi có thể truy cập nó bằng cách sử cleaned_data. Những gì tôi không hiểu là lý do tại sao tôi không thể truy cập nó bằng cách sử dụng chính nó: myForm.description. Chính xác điều gì xảy ra dưới mui xe khiến tôi không thể truy cập vào nó? –