如何使用存储在字段值中的正则表达式执行正则表达式查找?

2024-01-02

给定以下模型:

from django.db import models
from django.conf import settings

class UserMessage(models.Model):
    user = models.ForeignKey(settings.AUTH_USER_MODEL)
    path = models.CharField(max_length=255)
    message = models.TextField()

并给出以下模型实例:

UserMessage.objects.create(
    user=request.user,
    path='^/dashboard/(.*)+$',
    message='Welcome to your dashboard!'
)

我希望能够根据 UserMessage.path 的值执行当前请求路径的查找。这意味着我需要在查询的右侧有“路径”,例如:

SELECT * FROM user_message WHERE '/dashboard/foo/' ~ path;

然而,Django ORM 的正则表达式查找会产生相反的顺序,例如:

SELECT * FROM user_message WHERE path ~ '/dashboard/foo/';

有没有一种方法可以使用 ORM 查找轻松地扭转这一情况以获得我想要的结果?或者这更适合 .extra() 或自定义查找表达式?


extra()

UserMessage.objects.extra(where=['%s ~ path'], params=[request.path])

自定义查找

模型.py

from django.db.models import Lookup

@models.CharField.register_lookup
class NotEqual(Lookup):
    lookup_name = 'test'

    def as_postgresql(self, compiler, connection):
        lhs, lhs_params = self.process_lhs(compiler, connection)
        rhs, rhs_params = self.process_rhs(compiler, connection)
        params = lhs_params + rhs_params
        return '%s ~ %s' % (rhs, lhs), params

Usage: UserMessages.objects.get(path__test=request.path)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用存储在字段值中的正则表达式执行正则表达式查找? 的相关文章

  • Mac OSX 10.6 上的 Python mysqldb 不工作

    我正在使用 Python 2 7 并尝试让 Django 项目在 MySQL 后端运行 我已经下载了 mysqldb 并按照此处的指南进行操作 http cd34 com blog programming python mysql pyth
  • 重复命名捕获组

    我有一个带有如下字段的字符串 id ID 120 1 ID 141 5 ID 92 5 N A 我只想捕获命名捕获组的 ID 即没有 N A 或其他可能潜入的项目 我认为这可能有效 但没有运气 bid
  • 为什么这个 django url 没有重定向?

    从以下表单获取发布数据后 页面应重定向到 associate learn 如操作中所示 然而 它只是停留在单选按钮页面上 我怀疑我犯了初学者的错误 但在重新阅读教程后 我不确定发生了什么 索引 html Choose a dataset i
  • django:使用内部变量进行翻译

    我有以下代码 from django utils translation import ugettext as task You have s friends c1 task This is translation compositions
  • 获取用户最近城市的最佳方式? Python/Django

    我有一个数据库中城市数量有限的网站 需要向用户显示距离他当前位置最近的城市 我可以通过 MaxMind API 获取位置 但我想获取数据库中距用户城市最近的城市 例如 如果我的数据库中有这些城市 Los Angeles San Franci
  • 表单输入框不显示

    我正在尝试使用 Django 显示一个简单的表单输入文本框 我正在亚马逊 AWS 上部署 该网站在不同的服务器 pythonanywhere 上运行良好 但在 AWS 上存在主要问题 具体来说 输入框没有被显示 我使用的模板如下 首页 ht
  • 验证 Salesforce ID

    有没有办法验证 Salesforce ID 也许使用 RegEx 它们通常是 15 个字符或 18 个字符 但它们是否遵循我们可以用来检查它是否是有效 ID 的模式 验证 salesforce ID 有两个级别 使用正则表达式检查格式 a
  • 用于验证网络路径的正则表达式 PHP、jQuery、JavaScript、Ruby

    尝试找出用于验证网络路径的正则表达式 即 comp xyz or comp or comp x y z storage或者所有部分都更长的东西 但希望能够传达其要点 我目前拥有的是一个简单的输入字段 用户可以通过它传递信息 事情是我不希望他
  • django PermissionRequiredMixin Permission_required 不起作用

    Views py class templateList PermissionRequiredMixin TemplateView permission required accounts template all def get self
  • Django 中的动态用户菜单

    有没有办法让用户菜单根据分配给用户所属用户组的权限而变化 我正在考虑在视图级别检查这些权限 并删除用户无权的菜单选项 是的 可以访问模板中的用户对象并检查用户是否是员工 如下所示 if user is staff li a href adm
  • Django ImageField 默认值

    模型 py class UserProfile models Model photo models ImageField upload to get upload file name storage OverwriteStorage def
  • 如何覆盖 Django 中的默认用户模型字段?

    问题是默认的用户模型没有为字段提供一些非常有用的选项 例如唯一 真实到电子邮件字段 我读过这个问题 覆盖默认的用户模型方法 https stackoverflow com questions 1817244 django override
  • 在 Javascript 中使用 fetch API 接收和处理 JSON

    在我的项目中 当条件不足时 我的 Django 应用程序会发送带有消息的 JSON 响应 我使用这个 JsonResponse 指令 Code data is taken email email return JsonResponse da
  • Django 'ImportError:无法导入名称 url'

    您好 有人可以帮我解决 ImportError 无法导入名称 url 问题吗 我在这里遵循了教程https docs djangoproject com en 1 9 intro tutorial01 https docs djangopr
  • Django 多个外键,相同的相关名称

    我想创建一个模型 1 其中具有相同其他模型 2 的多个外键 我希望这些外键具有相同的related name因为每个外键将指向 model 2 的不同实例 因为我需要所有外键的一个反向关系 也许一个例子会更明确 class Parent M
  • 电子商务是否从头开始

    我需要开发一个包含电子商务部分的新网站 我来这里是想从你那里得到一些关于我应该走哪条路的提示 该网站将有一个静态部分 其中包括一些静态页面和用于销售产品的电子商务部分 我是 Django 和 PHP 开发人员 但这是我第一次需要开发电子商务
  • 正则表达式在 R 中同时多次包含字母/特殊字符时删除单词

    我想删除那些单词中字母 特殊字符的数量同时出现两次以上的单词 例如 输入就像 Google in theee lland of whhhat c c and e 输出应该是 Google in lland of c c and x lt G
  • 如何覆盖和扩展基本的 Django 管理模板?

    如何覆盖管理模板 例如 admin index html 同时扩展它 请参阅https docs djangoproject com en dev ref contrib admin overriding vs replacing an a
  • PHP 电子邮件验证[重复]

    这个问题在这里已经有答案了 For PHP最好的电子邮件验证方法是什么preg NOT ereg因为它是已弃用 删除 I don t需要检查该网站是否存在 这不像最高安全性 我找到了很多方法ereg但它们 显然 不是好的做法 我建议你使用F
  • 如何确保 re.findall() 停止在正确的位置?

    这是我的代码 a import re re findall r lt title gt lt title gt a 结果是 title aaa

随机推荐

  • 自定义适配器中的位置错误

    我创建了一个定制适配器管理一些Buttons每个里面ListView物品 如果我向下滚动列表并单击按钮 适配器就会采取错误的位置 LISTVIEW item 1 item 2 item 3 item 4 item 5 item 6 item
  • 如何以编程方式调用 Maven 任务

    我在另一个构建工具 Clojure 的 leiningen 但这不重要 的上下文中使用 Maven 我想知道如何调用像依赖 构建类路径 http maven apache org plugins maven dependency plugi
  • 在序言中随机播放

    我正在尝试在序言中编写一个过程 其中如果 L1 1 2 3 且 L2 4 5 6 那么 L3 1 4 2 5 3 6 so shuffle 1 2 3 4 5 6 1 4 2 5 3 6 到目前为止我有这个 shuffle X Y X Y
  • golang - 反射包中的 Elem 与间接

    来自文档 func v Value Elem Value Elem 返回接口 v 包含的值或指针 v 指向的值 如果 v 的 Kind 不是 Interface 或 Ptr 它会发生恐慌 如果 v 为零 则返回零值 func Indirec
  • PasswordHash 无法与 CodeIgniter 一起使用

    我已经把我下载的文件放在了http www openwall com phpass http www openwall com phpass to application libraries 在我的控制器中 我使用这段代码 params a
  • Java中如何手动进行长时间Full GC

    如何编写一些代码将对象分配到 Old Gen 中 从而导致 Full GC 时间超过三五秒 将对象分配到 Old Gen 中 和 长 GC 暂停 很难结合起来 因为你可以对垃圾收集器做的最糟糕的事情就是创建大量小的 链接的 活动的对象 形成
  • 多重排序的 URL 查询字符串约定

    我有一个 RESTful Web 应用程序 支持对项目集合进行多个排序字段 是否存在将这些排序字段编码到 URL 的查询字符串中的通用约定 我正在考虑如下的模式 http myapp com books sort author asc da
  • 如何在c#中获取组合键

    How can I capture Ctrl Alt K P keys on a C form thanks 这是一个和弦 如果不记住看到和弦的第一个击键 就无法检测到它 这有效 public partial class Form1 For
  • gitlab runner 请求的 URL 返回错误:403

    我目前正在使用 gitlab com 不是本地安装 及其多运行程序进行 CI 集成 这在我的一个项目中效果很好 但在另一个项目中却失败了 我的主机使用的是 2012R2 MSBuild 版本为 14 0 23107 0 我知道下面的错误显示
  • 将函数映射到两个输入列表

    我有一个函数想要用多组输入进行测试 假设函数是 f a gt b gt c 现在我有两个输入列表 inputA a inputB b For inputA i 我要评价f input i对于列表中的每个元素inputB i 我知道我需要几个
  • React - 预填充表单

    我需要预先填充一个表单 以便用户可以编辑他们之前创建的博客 我正在寻找在 React 中执行此操作的最佳实践方法 我目前正在通过 props 将值传递给组件 然后将状态属性设置为等于 props 属性 但我读到这是一种反模式 我理解 真理之
  • 使用属性名称设置属性值[重复]

    这个问题在这里已经有答案了 可能的重复 我可以使用 Reflection 设置属性值吗 https stackoverflow com questions 7718792 can i set a property value with re
  • 在 React Native 中,redux 状态在内存中保留多长时间

    我试图了解如何在我的反应本机应用程序中管理 redux 状态 特别是 我试图弄清楚当我的应用程序最小化或设备关闭时会发生什么 有了这些知识 我就可以最好地找出如何持久化状态 并为重置 redux 状态可能出现的任何非法状态做好准备 如果重置
  • 如何检测浏览器支持requestFullscreen

    如何检测浏览器支持requestFullscreen or not 我有下面这些代码可以使 chrome safari firefox 和 opera 不完全工作 使文档全屏显示 但我想检测浏览器支持requestFullscreen或不
  • 使用 Linq 创建交叉表结果[重复]

    这个问题在这里已经有答案了 可能的重复 是否可以使用 LINQ 透视数据 https stackoverflow com questions 167304 is it possible to pivot data using linq 我想
  • UIManagedDocument OpenWithCompletionHandler 永远不会返回

    我遇到了一个奇怪的问题 我确信我对代码中其他地方的文件做了一些操作 并且它没有正确关闭或其他什么 但现在它处于报告为已关闭的状态 但当我调用 OpenWithCompletionHandler 时它永远不会返回 见下文 if the fil
  • 显示文件或对象之间的差异

    R 中有没有一种方法可以比较对象并返回有用的信息 例如差异在哪里 我需要比较文件 但愿意将它们读入 data frames 这可能可以通过命令行更好地处理 但我想将我的测试封装到一个 R 脚本中 我的下一次尝试是使用 ddply 将每一行发
  • 在第二台显示器上打开新的浏览器页面

    嗯 简单的情况 是否可以通过 Web 应用程序检测用户是否具有双显示器设置 如果可能的话 是否可以在第二台显示器上打开子浏览器页面 以便新窗口不会与旧窗口重叠 我问的原因是 我正在开发一个网络应用程序 并且家里有一个双显示器系统 当我转到该
  • 在 Kotlin 中读取所有输入行的简洁方法

    进行编码挑战时的常见模式是读取多行输入 假设您事先不知道有多少行 您想要读取直到 EOF readLine 返回 null 另外作为前言 我不想依赖 java utils 因为我是用 KotlinNative 编码的 所以没有 Scanne
  • 如何使用存储在字段值中的正则表达式执行正则表达式查找?

    给定以下模型 from django db import models from django conf import settings class UserMessage models Model user models ForeignK