【问题标题】:Access a value from a list field in django从 django 中的列表字段访问值
【发布时间】:2023-03-13 08:11:02
【问题描述】:

我的 django 模型中有一个供用户使用的列表字段,如下所示: 名称 = 模型.CharField() 电子邮件 = models.CharField() profile = ListField()

我在 django_mongodb_engine 的帮助下使用 mongo 作为存储数据库。 对于一个用户,模型对象可能是

 {name:'Alice',电子邮件:'abc',个人资料:['Read']} 
对于另一个用户,它可能是:
 {name:'John',电子邮件:'xyz',个人资料:['Read','Write']} 

我想搜索分配给他们阅读个人资料的用户。 在 mongo db shell 中,只需添加查询即可执行

{'profiles': '读取'} 
。 我们可以通过 django 查询集执行这样的搜索吗?当我尝试时,它给了我一个例外“列表索引必须是整数,而不是 str”。请在这方面指导我。谢谢

【问题讨论】:

    标签: django django-mongodb-engine


    【解决方案1】:

    一种可能的解决方案是在MongoDBManager 的帮助下使用原始查询:

    from django_mongodb_engine.contrib import MongoDBManager
    
    class UserModel(models.Model):
        name = models.CharField()
        email = models.CharField()
        profiles = ListField()
    
        objects = MongoDBManager()
    

    然后:

    UserModel.objects.raw_query({'profiles': 'Read'})
    

    【讨论】:

    • 我已经编辑了我的问题,请再次查看以更好地理解问题。谢谢。
    猜你喜欢
    • 2016-02-29
    • 1970-01-01
    • 2022-01-12
    • 1970-01-01
    • 2017-03-06
    • 2020-05-25
    • 1970-01-01
    • 2016-06-27
    • 1970-01-01
    相关资源
    最近更新 更多