2010-02-13 36 views
9

Tôi có một hình thức đơn giảnCách thêm lớp HTML vào help_text của biểu mẫu Django?

class MyForm(forms.Form): 
    ... 
    fieldname = forms.CharField(help_text="Some help text") 

sau đó tôi có thể hiển thị hình thức này với django của tiện {{ form.as_ul }} nếu tôi thích, bây giờ tôi cần phải stylise các help_text và tôi không có ý tưởng như thế nào. Django không xuất hiện để quấn rằng chuỗi trong bất cứ điều gì mà sẽ cho phép CSS của tôi có được với nó như vậy tại thời điểm này, tôi đã khôi phục tại:

class MyForm(forms.Form): 
    ... 
    fieldname = forms.CharField(help_text='<div class="helptext">Some help text</div>') 

Mà tôi biết là sai vì vậy tôi đang tìm đây để được tư vấn tốt hơn.

Trả lời

7

Chỉ có nhiều bạn có thể tùy chỉnh trong giao diện người dùng từ các tùy chọn biểu mẫu. Cách linh hoạt hơn để tiếp cận vấn đề là tạo mẫu biểu mẫu của riêng bạn rồi sử dụng lại nó thay vì {{ form.as_something }}. Đọc các chủ đề từ tài liệu Django:

này đã làm việc rất tốt khi tôi cần đánh dấu hình thức tùy chỉnh đáng kể vẫn còn giữ nó khô.

+1

Đồng ý. form.as_ * chỉ để tạo mẫu nhanh; bố cục biểu mẫu thực sự yêu cầu thực hiện nó trong mẫu. Không nhất thiết là từng trường; trong hầu hết các trường hợp, tôi chỉ lặp qua các trường và trình bày từng trường có cùng một HTML. –

2

Tôi đoán không có cách nào khác, nếu không có thể sẽ không cần thiết cho vé này: http://code.djangoproject.com/ticket/8426.

Bạn có thể áp dụng bản vá được cung cấp ở đó.

13

Một cách thuận tiện hơn để làm điều này là:

from django.utils.safestring import mark_safe 

và sau đó:

field = models.TextField(help_text=mark_safe("some<br>html")) 
Các vấn đề liên quan