2012-04-26 35 views
5
class permForm(forms.Form): 
    def __init__(self, data=None, **kwargs): 
     super(permForm, self).__init__(data, **kwargs) 

     for item in list(AdminMenu.objects.filter(parent_id=0)): 
      self.fields['menu_%d' % item.id] = forms.BooleanField(label=item.title) 
      for childitem in list(AdminMenu.objects.filter(parent_id=item.id)): 
       arr=[] 
       arr.append(str(item.id)) 
       arr.append(str(childitem.id)) 
       self.fields['menu_%s' % '_'.join(arr)] = forms.BooleanField(label=childitem.title) 

này sẽ trở lạiLàm thế nào để tùy chỉnh hình thức django nhãn

loại: hộp kiểm

add loại: hộp kiểm

Danh sách chuyên mục: hộp kiểm

Thực phẩm: hộp kiểm

Add Fooditems: hộp kiểm

Danh sách Fooditem: hộp kiểm

Bàn: hộp kiểm

Thêm Bàn: hộp kiểm

Danh sách Bàn: hộp kiểm

Người dùng: hộp kiểm

Xem Users: hộp kiểm
Làm thế nào tôi có thể hiển thị nó như sau

loại: hộp kiểm

add loại: hộp kiểm

Danh sách chuyên mục: hộp kiểm

Thực phẩm: hộp kiểm

Thêm Fooditems: hộp kiểm

Danh sách Fooditem: hộp kiểm

Bàn: hộp kiểm

Thêm Bàn: hộp kiểm

Danh sách Bàn: hộp kiểm

Người dùng: hộp kiểm

Xem Users: hộp kiểm

Tôi muốn làm PHỤ HUYNH LOẠI NHÃN BOLD ĐỂ DISTINGUISH CNTT TỪ CON. KHẢ THI? Tôi không muốn sử dụng cứng mã hoá HÌNH THỨC

+0

sử dụng CSS, nó là đơn giản hơn nhiều và dễ dàng hơn để thay đổi. Nhãn biểu mẫu của bạn sẽ không bao giờ thay đổi nếu bạn không thay đổi mô hình biểu mẫu django. – platinummonkey

+0

Không cần phải hét lên. Như @platinummonkey đề xuất, bạn luôn có thể sử dụng CSS, ngắn gọn rằng lựa chọn duy nhất của bạn là hiển thị từng trường riêng lẻ trong biểu mẫu của bạn và thêm bất kỳ thẻ phụ nào bạn muốn theo cách đó. Bạn * không thể * bao gồm HTML trong nhãn ở Django. –

+1

Thực ra, bạn có thể. Xem câu trả lời của tôi cho mã ví dụ. – Brandon

Trả lời

13

Dưới đây là một ví dụ về làm thế nào để thêm một số mã HTML để tạo nhãn:

from django.template.defaultfilters import mark_safe 


class MyForm(forms.Form): 
    my_field = forms.CharField(
     max_length=100, 
     label = mark_safe('<strong>My Bold Field Label</strong>') 
    ) 
+0

Rất đẹp nhưng hơi bẩn. – Natim

+0

Một cách tiếp cận rõ ràng hơn có thể là đặt văn bản nhãn vào một khuôn mẫu và sử dụng render_to_string, do đó không gây ô nhiễm mã Python với HTML. – Brandon

+0

Có thể giải pháp sẽ sử dụng các định dạng đĩa mềm để mở rộng hiển thị biểu mẫu nhãn cho trường này. – Natim

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