Доступ к значению из поля списка в Django

У меня есть поле списка в моей модели django для пользователей следующим образом: name = models.CharField() email = models.CharField() profile = ListField()

Я использую Монго в качестве базы данных хранения с помощью django_mongodb_engine. Для одного пользователя объект модели может быть как

 {имя: 'Алиса', электронная почта: 'abc', профили: ['Читать']} 
Для другого пользователя это может быть:

 {имя: 'Джон', электронная почта: 'xyz', профили: ['Читать', 'Написать']} 

Я хочу найти пользователей, которым назначен профиль "Читать". В оболочке mongo db это можно сделать, просто добавив в запрос

 {'profile': 'Read'} 
, Можем ли мы выполнить такой поиск через наборы запросов django? Когда я попытался, это дало мне исключение "индексы списка должны быть целыми числами, а не str". Пожалуйста, направьте меня в этом отношении. Спасибо

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'})
Другие вопросы по тегам