Tôi đang lặp qua các trường của biểu mẫu và cho một số trường nhất định, tôi muốn bố cục hơi khác, yêu cầu HTML thay đổi.Nhận loại phụ tùng biểu mẫu Django từ trong mẫu
Để làm điều này một cách chính xác, tôi chỉ cần biết loại tiện ích con. Tên lớp của nó hoặc một cái gì đó tương tự. Trong python chuẩn, điều này rất dễ dàng! field.field.widget.__class__.__name__
Thật không may, bạn không được phép truy cập vào các biến gạch dưới trong mẫu. Tuyệt vời!
Bạn thể kiểm tra field.field.widget.input_type
nhưng điều này chỉ làm việc cho văn bản/mật khẩu <input ../>
loại. Tôi cần độ phân giải cao hơn thế.
Đối với tôi, tuy nhiên rất khó nhìn, điều này có ý nghĩa nhất khi thực hiện việc này ở cấp mẫu. Tôi đã thuê ngoài mã bit xử lý HTML cho các trường cho một mẫu riêng biệt được đưa vào vòng lặp trường. Điều này có nghĩa là nó nhất quán trên ModelForm
s và tiêu chuẩn Form
s (điều gì đó sẽ không đúng nếu tôi đã viết một lớp Mẫu trung gian).
Nếu bạn có thể thấy cách tiếp cận toàn cầu không yêu cầu tôi chỉnh sửa biểu mẫu 20 lẻ, hãy cho tôi biết!
Báo cáo lỗi có liên quan hoặc yêu cầu tính năng: https://code.djangoproject.com/ticket/13009 – Flimm