kel*_*van 6 django django-models django-admin
在django管理界面的更改列表视图中,如果它们实现表达式,是否可以将某些字段/行标记为红色?
例如,如果有一个Group带有members和的模型,capacity我怎样才能看到它们满或拥挤的时候?
要修改更改列表视图中的显示方式和内容,可以使用list_display选项ModelAdmin.
请注意,给出的列list_display不是真正的数据库字段不能用于排序,因此需要给Django管理员一个关于实际用于排序的数据库字段的提示.
例如,通过将admin_order_field属性设置为用于在HTML中包装某些值的可调用来实现此目的.
来自多彩字段的Django文档的示例:
class Person(models.Model):
first_name = models.CharField(max_length=50)
color_code = models.CharField(max_length=6)
def colored_first_name(self):
return '<span style="color: #%s;">%s</span>' % (
self.color_code, self.first_name)
colored_first_name.allow_tags = True
colored_first_name.admin_order_field = 'first_name'
class PersonAdmin(admin.ModelAdmin):
list_display = ('first_name', 'colored_first_name')
Run Code Online (Sandbox Code Playgroud)
我希望其中一些有所帮助.
这是一个老问题,但我将添加文档中的示例,Django 1.10因为allow_tags接受的答案中使用的属性已被弃用Django 1.9,建议使用format_html代替:
from django.db import models
from django.contrib import admin
from django.utils.html import format_html
class Person(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
color_code = models.CharField(max_length=6)
def colored_name(self):
return format_html(
'<span style="color: #{};">{} {}</span>',
self.color_code,
self.first_name,
self.last_name,
)
class PersonAdmin(admin.ModelAdmin):
list_display = ('first_name', 'last_name', 'colored_name')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6277 次 |
| 最近记录: |