gpt4 book ai didi

python - 如何创建管理系统可以排序的 __unicode__ 字段?

转载 作者:太空宇宙 更新时间:2023-11-04 03:53:09 24 4
gpt4 key购买 nike

我正在使用 Django 运行一个小的患者列表。在管理界面中,我有一些在 admin.py 文件中定义的列。

class InpatientAdmin(admin.ModelAdmin):
list_filter = ['discharged','date_of_admission']
date_hierarchy = 'date_of_admission'
list_display = ('room', '__unicode__', 'date_of_admission', 'date_of_discharge', 'discharged')
inlines = [ EncounterInline ]

unicode字段在模型中定义为

    def __unicode__(self):
return '%s, %s %s' % (self.last_name, self.first_name, self.DOB)

管理界面有效。 Django 程序员做的事情真的很漂亮。但是,当我单击 unicode 定义字段的标题时,它不会排序。我可以对 Room、date_of_admission 和 date_of_discharge 进行排序,但 unicode 字段不会排序。我尝试在 unicode def 中返回 self.last_name,但这也没有用。我怀疑 unicode 字段没有提供返回比较例程的 Hook 。

我确信有一些简单的方法可以使这项工作有效,但我不知道用谷歌搜索来找到解决方案的条款。感谢帮助。

谢谢,史蒂夫

最佳答案

尝试使用 Peter DeGlopper 的答案,但有几个问题,该片段应该放在 models.py 中,但模型中没有定义 self

因此,

self.__unicode__.admin_order_field = 'last_name'

不会工作。

即使你尝试:

__unicode__.admin_order_field = 'last_name'

管理员很固执,不想排序。因此,我找到了 this solution .即创建一个模型方法,只返回 unicode 名称,然后定义排序字段。

同样,这不是我的解决方案(代码来自链接),但它应该可以帮助其他面临同样问题的人:

模型.py

def unicode_sort(self):
return self.__unicode__()

unicode_sort.admin_order_field = 'sort'
unicode_sort.short_description = u'name'

admin.py

list_display = ('unicode_sort',) 

关于python - 如何创建管理系统可以排序的 __unicode__ 字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20206510/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com