2016-05-01 204 views
0

我想着色整個Django表格單元格,下面的代碼只着色Django Admin中的文本而不是整個表格單元格中的文本。什麼是目前的樣子:在Django中更改表格單元格的整個背景顏色Admin

enter image description here

下面是當前的代碼

class Student(models.Model): 

    def city_and_zip(self): 
     if self.city_zip: 
      cell_html = '<div style = "background-color:#e6f2ff;">%s</div>' 
     else: 
      cell_html = '<div>%s</div>' 

     return cell_html % self.city_zip 

    city_and_zip.allow_tags = True 

再次,它colorizes得當......但只是在一定程度上。我想爲整個單元着色。更改div到th也不起作用

回答

1

當您爲modelAdmin聲明list_display時,td元素包含此字段具有類似field-'list_display_name'的css類。我的情況是它會field-city_and_zip
所以你可以添加這個類的CSS選擇器。 Django爲這種方法提供了許多解決方案。這裏是一個:

class StudentAdmin(admin.ModelAdmin): 

    @property 
    def media(self): 
     media = super(ProductAdmin, self).media 
     css = { 
      "all": (
       "css/your.css", 
      ) 
     } 
     media.add_css(css) 
     return media 

在另一方面,你可以在你的管理模式寫class Media

class StudentAdmin(admin.ModelAdmin): 

    class Media: 
     css = {"all":("css/your.css",)} 

然後把這個css文件在靜態路徑和寫選擇:

.field-city_and_zip { 
    background-color: #e6f2ff; 
} 

它應該像你需要的那樣工作。您也可以直接將CSS管理基本模板
more information about admin page

1

您可以通過兩種方式更改管理員CSS資產:

  1. 型號級別:需要添加CSS文件到您的管理模式。

    class MyModelAdmin(admin.ModelAdmin): 
        class Media: 
         js = ('js/admin/my_own_admin.js',)  
         css = { 
          'all': ('css/admin/my_own_admin.css',) 
         } 
    
  2. 模板級別:如果你想改變一般的管理員,應該重寫管理模板的外觀。這在這裏詳述:Overriding admin templates

有時您可以擴展原始管理文件,然後覆蓋django/contrib/admin/templates/admin/base.html中的{% block extrastyle %}{% endblock %}這樣的塊作爲示例。

相關問題