我有一个带标题字段的模型:
class Item():
title = models.TextField(blank=True, null=True)
我的数据库在标题字段上有一个md5索引。我想按哈希的md5字符串进行搜索,例如:
Item.objects.extra(where=["MD5(title) = hashlib.md5("This is the title")"])
但是,我想在OR语句中执行此操作,所以我当前的代码如下:
class ItemManagerQueryset(models.QuerySet):
def is_matching_title(item):
q_objects = Q()
if item.title:
q_objects.add(Q(title=item.title), Q.OR)
self.filter(q_objects)
如何在OR语句中添加.extra,如下所示:
class ItemManagerQueryset(models.QuerySet):
def is_matching_title(item):
q_objects = Q()
if item.title:
q_objects.add(Q(title=item.title), Q.OR)
q_objects.add(Q(extra(where=["MD5(title) = hashlib.md5("This is the title")"])), Q.OR)
self.filter(q_objects)