Tôi muốn tạo các tiện ích bổ sung các lớp cụ thể để đánh dấu phần tử khi trường được liên kết có lỗi.Django: Làm cách nào để kiểm tra xem có lỗi trường nào trong định nghĩa widget tùy chỉnh không?
Tôi đang gặp khó khăn khi tìm thông tin về cách kiểm tra xem một trường có lỗi liên kết với nó hay không, từ bên trong mã định nghĩa widget.
Hiện tại tôi có mã tiện ích con sau (tiện ích cuối cùng sẽ sử dụng đánh dấu phức tạp hơn).
from django import forms
from django.utils.safestring import mark_safe
class CustomTextWidget(forms.Widget):
def render(self, name, value, attrs):
field_has_errors=False # change to dynamically reflect field errors, somehow
if field_has_errors:
error_class_string="error"
else:
error_class_string=""
return mark_safe(
"<input type=\"text\" class=\"%s\" value=\"%s\" id=\"id_%s\" name=\"%s\">" % (error_class_string, value, name, name)
)
Mọi người có thể làm sáng tỏ một cách hợp lý để điền vào trường_has_errors Boolean tại đây không? (hoặc có lẽ đề xuất một cách tốt hơn để hoàn thành những gì tôi đang cố gắng làm). Cảm ơn trước.
Đây chắc chắn là cách để đi và thực sự là cách tiếp cận mà tôi luôn thực hiện trong công việc của riêng mình. Ví dụ tôi cung cấp đã được gộp lại với nhau trong một nỗ lực để hiển thị việc truyền các thuộc tính cho các widget (không chỉ các widget tùy chỉnh), tuy nhiên nó nên tránh vì nó không phải là DRY. –
hai năm sau nó đã giúp tôi. Cảm ơn bạn :) – Houman
Tại sao họ không chuyển thông tin lỗi cho tiện ích con? Có vẻ như nó sẽ là hợp lý với tôi, vì nó là phổ biến để làm cho lỗi ngay bên cạnh đầu vào cho lĩnh vực này. – Andy