【问题标题】:Python/Django: Get record from DB based on a dictionary fieldPython/Django:根据字典字段从数据库中获取记录
【发布时间】:2013-05-23 20:37:00
【问题描述】:

我有一个数据库表,其中一个字段是一个序列化的 Python 字典(或字符串化的 JSON),格式如下: {"full_name":"first_name=John&last_name=Smith", "id":24354,"username":"hello"}

如果我正在搜索特定的用户名,我如何根据该字段,特别是字典的用户名选择记录?我的意思是有没有任何智能/快速的方法来做到这一点而无需循环或拆分过程,也许只需要一行代码?

#If the field name is "user_info"
account = theModel.filter(user_info=???)

*我知道这个设计不太好,但我发现它是这样的......

谢谢!

【问题讨论】:

    标签: python database dictionary django-models


    【解决方案1】:

    您可以使用 Django 的正则表达式查询语法。

    theModel.objects.get(user_info__regex=r'some regex here')

    【讨论】:

    • theModel.objects.get(user_info__iregex=r'"username":"\w+"') 虽然这不能很好地扩展,它需要一个全表扫描。如果经常查询这个字段,如果是普通的Django字段会快很多:username=CharField(unique=True)
    猜你喜欢
    • 1970-01-01
    • 2019-07-02
    • 1970-01-01
    • 2014-09-09
    • 2011-10-28
    • 1970-01-01
    • 1970-01-01
    • 2016-05-24
    • 1970-01-01
    相关资源
    最近更新 更多