我试图为整个Django表格单元着色,以下代码只对Django Admin中的文本着色,而不是整个表格单元格。目前的情况如下:
这是当前的代码
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
再次,它正确地着色它......但只是在某种程度上。我想为整个细胞着色。将div改为th不起作用
答案 0 :(得分:1)
当您为modelAdmin
声明list_display时,td
元素包含此字段的css类与field-'list_display_name'
类似。我的情况是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 :(得分:1)
您可以通过两种方式更改admin css资产:
模型级别:将所需的css文件添加到管理模型中。
class MyModelAdmin(admin.ModelAdmin):
class Media:
js = ('js/admin/my_own_admin.js',)
css = {
'all': ('css/admin/my_own_admin.css',)
}
有时您可以扩展原始管理文件,然后在django/contrib/admin/templates/admin/base.html中覆盖{% block extrastyle %}{% endblock %}
之类的块作为示例。