从 Django 中的列表字段访问值

Access a value from a list field in django

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

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

 {name: 'Alice', email: 'abc', profiles: ['Read']} 
对于另一个用户,它可能是:

 {name: 'John', email: 'xyz', profiles: ['Read', 'Write']} 

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

{'profiles': 'Read'} 
即可执行。 我们可以通过 django querysets 执行这样的搜索吗?当我尝试时,它给了我一个例外 "list indices must be integers, not str"。请在这方面指导我。谢谢

一种可能的解决方案是在 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'})