CSS   发布时间:2022-04-17  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何允许通过自定义list_display字段在Django管理员中进行排序,该字段没有DB字段也没有可注释的大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个自定义list_display字段,它负责我的一个管理页面中的整数列.

我需要让工作人员按照它排序.

如果整数代表某些DB字段的计数/平均值等,那么有一个解决方案可以实现,但对我来说并非如此.

[该案例的解决方案如下:Django admin: how to sort by one of the custom list_display fields that has no database field
]

任何想法如何实现这种排序,而不实际创建和维护值的数据库字段?

解决方法

排序是在数据库引擎上完成的(按照order by子句),所以除非你在模型中实现了一个字段,否则我认为你无法实现你想要的.此时计算状态不可排序(至少不在管理界面中,如果您使用自己的界面,则可以使用 extra).

如果问题是过滤,你可以编写一个自定义的FilterSpec(似乎没有在任何地方记录,但SO有一个good example).

但是对于在管理员中排序,你唯一的选择是物化领域,我担心.

编辑:

嗯…

你可以尝试一下. It is possible(然我不认为它在任何地方正式记录)更改ModelAdmin使用的查询集.如果您的计算字段足够简单,可以嵌入查询本身,您可以执行以下操作:

class BlahAdmin(admin.ModelAdmin):
    ... whatever definitions ...

    def queryset(self,@R_801_10613@est):
        return Blah.objects.extra(SELEct={'computed': "count(field_X)"})

这可能会奏效.然没经过测试.

大佬总结

以上是大佬教程为你收集整理的如何允许通过自定义list_display字段在Django管理员中进行排序,该字段没有DB字段也没有可注释的全部内容,希望文章能够帮你解决如何允许通过自定义list_display字段在Django管理员中进行排序,该字段没有DB字段也没有可注释的所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。