Django 使用模型的_uunicode__;作为管理表单中的搜索字段
是否有一种方法可以将模型的\uuuuuuunicode\uuuuuuu方法包含到搜索字段元组中?我不想创建特殊字段来存储模型中的\uuuuuUnicode\uuuuu结果,因为这个值取决于其他几个模型…嘿,我最近确实需要类似的东西。 如Django 使用模型的_uunicode__;作为管理表单中的搜索字段,django,django-models,django-admin,Django,Django Models,Django Admin,是否有一种方法可以将模型的\uuuuuuunicode\uuuuuuu方法包含到搜索字段元组中?我不想创建特殊字段来存储模型中的\uuuuuUnicode\uuuuu结果,因为这个值取决于其他几个模型…嘿,我最近确实需要类似的东西。 如search\u fields中所述,仅适用于表示数据库中列的属性,而不适用于属性 但是,如果您的\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu 这说明了如何
search\u fields
中所述,仅适用于表示数据库中列的属性,而不适用于属性
但是,如果您的\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
这说明了如何以与Django QuerySet相同的方式在管理搜索字段中进行指定。不,这是不可能的,因为搜索字段
元组中提到的字段用于构造sql查询
看第349-370行
UPD.好的,您可以创建另一个字段并将\uuuu unicode\uuu
方法的值存储在那里。可能它看起来丑陋且效率低下,但这允许您过滤数据库列。
请提供有关\uuuuunicode\uuuu
方法外观的更多信息
UPD2您的unicode
方法:
def __unicode__(self):
return "%s%s%s%s-%s%s" % (
self.factory.republic.code.upper(),
self.factory.location.region and self.factory.location.region.code or '00',
self.factory.location.code,
self.factory.code,
self.kind.code,
self.code
)
Djangosearch\u fields
操作他的ORM方法,因此如果您无法执行
Catalog.objects.filter(**lookup\u querys)
,您将无法使用管理中的search\u字段执行此操作。不幸的是
unicode方法对于6个表的联接和其他程序逻辑来说是非常特殊的。在SQL语言中搜索此字段会很复杂,并且不会使用索引。尝试将结果保存在db列中,并在相关字段更新时进行更新。好吧,也许您知道如何自定义搜索?”%s%s%s-%s%s“%(self.factory.republic.code.upper()、self.factory.location.region和self.factory.location.region.code或“00”、self.factory.location.code、self.factory.code、self.kind.code、self.code)这是一个目录id。如果我创建这个字段,我必须钩住所有相关模型的修改。我在相关字段搜索中看到了答案。。。但我的unicode是几个表的组合,所以搜索必须全部使用它们。