gpt4 book ai didi

具有模型属性的 Django admin search_fields

转载 作者:行者123 更新时间:2023-12-01 13:05:02 25 4
gpt4 key购买 nike

我正在尝试将模型中的属性用作 django admin (1.2) 中的字段。

这是我的代码示例:

class Case(models.Model):
reference = models.CharField(_(u'Reference'), max_length=70)
client_read = models.BooleanField(default=0)

def __unicode__(self):
return self.case_id

@property
def case_id(self):
""" unique case ID """
number = (settings.CASE_ID_LENGTH - len(str(self.id))) * "0" + str(self.id)
return '%(year)s%(unique_id)s' % {
'year': self.case_date.strftime("%y"),
'month': self.case_date.strftime("%m"),
'unique_id': number}

和admin.py的部分:

class OrderAdmin(ReadOnlyAdminFields, admin.ModelAdmin):
[...]
search_fields = ('id','case','req_surname','req_forename','req_company')

我可以将该字段称为“案例”(如示例中给出的那样),但这给了我一个TypeError: Related Field has invalid lookup: icontains

当然,它与相关字段的工作方式相同:所以我可以使用 case__id 然后我可以使用该 id 作为搜索查询。但这对用户来说有点恼火,因为 caseid 显示不同。

有没有办法像显示的那样使用 case_id 作为搜索查询(年+月+id)?

最佳答案

不,你不能那样使用它,因为这只适用于表示数据库中列的属性,不适用于属性。使这项工作有效的唯一方法是使用 contrib.admin.views.main.ChangeList 的子类作为更改列表并覆盖它的 get_query_set 方法以实现所需的行为!

关于具有模型属性的 Django admin search_fields,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3729023/

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