簡體   English   中英

Django 反向正則表達式匹配

[英]Django Reverse Regex Match

我有一個表(Django 模型),每行/對象都包含一個正則表達式,我應該對給定的輸入進行評估以過濾相關對象。

是否有任何 Django ORM 方法可以做到這一點?

在 Postgre 中,它將是:

SELECT * FROM 'value' ~ column;

與我正在尋找的相反的是:

Model.objects.filter(column__regex='regex')

我知道在應用程序端評估正則表達式會提供與查詢相似的性能,但我的應用程序設計要求我在數據庫端移動該過濾器(作為適當的基於 ORM 的查詢)。

任何想法如何使用 Django 實現?

謝謝!

此致,

我們可以使用.annotate(..)來“注入”一個值,然后使用F表達式來引用列:

from django.db.models import CharField, Value, F

Model.objects.annotate(
    value=Value('value', output_field=CharField())
).filter(
    value__regex=F('regex')
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM