搜索计算字段django?

问题描述

所以我在代码中有一个秘密,并使用sha256在日志中对其进行编码。所以我需要在admin中搜索它,我尝试了批注,但是它不起作用,所以我想添加一个计算字段,所以我不保留冗余数据,但是在django中无法搜索到装饰属性函数。还有其他方法吗?

这是注释方式:

    def get_search_results(self,request,queryset,search_term):
        queryset,use_distinct = super().get_search_results(request,search_term)
        queryset |= self.model.objects.annotate(sha256_search=sha256_hash("key")).filter(sha256_search__contains=search_term)
        return queryset,use_distinct

我得到了错误

TypeError: QuerySet.annotate() received non-expression(s): 2c70e12b7a0646f92279f427c7b38e7334d8e5389cff167a1dc30e73f826b683.

这是我无法添加到的属性字段:

    @property
    def sha256_key(self):
        return sha256_hash(self.key)

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)