说明
在使用 django-liststyle 时,实在英语有限...不太理解 fabriceb 所表达的:
class MyModelAdmin(admin.ModelAdmin, ListStyleAdminMixin):
...
def get_row_css(self, obj, index):
if obj.active:
return 'red red%d' % index
return ''
不清楚是由于还是个人理解错误...还是 Django 或 Python 版本的原因。最终结果是:始终无法设置行颜色。
此次修改,使用了笨办法...在 furkankykc 修改的基础上,添加了固定的静态 css。
Github
https://github.com/Shankschn/django-liststyle
环境
Python 3.7.7 Python 3.7.9
Django 2.2.10 Django 2.2.19
django-simpeui 2021.4.1
安装
pip install git+https://github.com/Shankschn/django-liststyle.git
使用
settings.py
添加 'liststyle' 到 INSTALLED_APPS 中,放于 'django.contrib.admin' 之前,若使用 'simpleui' 可取消其注释,类似如下:
INSTALLED_APPS = [
'liststyle',
#'simpleui',
'django.contrib.admin',
...
]
admin.py
from liststyle import ListStyleAdminMixin
class MyModelAdmin(admin.ModelAdmin, ListStyleAdminMixin):
pass
def get_row_css(self, obj, index):
if obj.控制颜色属性:
return 'c-颜色代码' # 颜色代码:大写,不含'#',参考 c-color.css 文件。。
return ''
颜色代码
其他说明
Note: If you have your own change_list_results.html; you'll need to
incorporate the changes from the one here. An example of a custom template
from the "grappelli" package is included in templates/admin/ dir.
可能遇到的错误
若直接:
pip install django-liststyle==0.2b
可能会产生以下错误:
TemplateSyntaxError: 'future' is not a registered tag library.
请使用:
# 使用 fabriceb 所修复的版本
pip install git+https://github.com/fabriceb/django-liststyle.git@cac1461939f4d7eedf2b8d144ce89da943791a7e
# 使用 furkankykc 在 fabriceb 基础上,修复的版本,以支持 Django 3
pip install git+https://github.com/furkankykc/django-liststyle.git
# 使用在 furkankykc 基础上,添加静态 c-color.css 的版本
pip install git+https://github.com/Shankschn/django-liststyle.git
参考
stackoverflow.com/questions/50792759/django-admin-how-to-add-background-color-for-each-row-in-list-view-when-object
stackoverflow.com/questions/4014914/change-row-colour-in-django-admin-list/4021083#4021083
github.com/litchfield/django-liststyle
github.com/litchfield/django-liststyle/issues/13
github.com/fabriceb/django-liststyle
github.com/furkankykc/django-liststyle