在Django Admin中对CommaSeparatedIntegerField进行排序,可以通过自定义Admin模型来实现。首先,需要创建一个Admin模型,并在其中定义一个排序字段。然后,使用Django提供的排序方法对CommaSeparatedIntegerField进行排序。
以下是一个示例代码:
from django.contrib import admin
from django.db.models.functions import Cast
from django.db.models import IntegerField
from .models import YourModel
class YourModelAdmin(admin.ModelAdmin):
list_display = ('id', 'comma_field', 'sorted_field')
def sorted_field(self, obj):
# 将CommaSeparatedIntegerField转换为整数列表
integer_list = [int(x) for x in obj.comma_field.split(',')]
# 对整数列表进行排序
sorted_list = sorted(integer_list)
# 返回排序后的结果
return ','.join(str(x) for x in sorted_list)
sorted_field.admin_order_field = 'comma_field' # 指定排序字段
admin.site.register(YourModel, YourModelAdmin)
在上述代码中,我们创建了一个名为YourModelAdmin
的自定义Admin模型,并定义了一个名为sorted_field
的方法。该方法将CommaSeparatedIntegerField字段的值转换为整数列表,并对其进行排序。最后,将排序后的结果以逗号分隔的形式返回。
在list_display
中,我们将sorted_field
添加到Admin模型的显示列表中,以便在Admin界面中显示排序后的结果。同时,我们还通过sorted_field.admin_order_field
指定了排序字段为comma_field
,这样在Admin界面中点击该字段的表头时,会按照我们定义的排序规则进行排序。
请注意,上述代码中的YourModel
是你自己定义的模型类,需要根据实际情况进行替换。
推荐的腾讯云相关产品:腾讯云云服务器(https://cloud.tencent.com/product/cvm)和腾讯云数据库(https://cloud.tencent.com/product/cdb)。这些产品提供了稳定可靠的云计算基础设施和数据库服务,适用于各种规模的应用场景。
领取专属 10元无门槛券
手把手带您无忧上云