2016-08-24 73 views
0

值我在我的Django模型列表字段的用戶,如下所示: 名= models.CharField() 電子郵件= models.CharField() 型材= ListField()訪問從列表字段在Django

我在django_mongodb_engine的幫助下使用mongo作爲存儲數據庫。 對於一個用戶,模型對象也能像

 {name: 'Alice', email: 'abc', profiles: ['Read']}
對於其他用戶則可能是:

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

我想搜索被分配讀取配置文件給他們的用戶。 在mongo db shell中,只需在查詢

{'profiles': 'Read'}
中添加即可執行。 我們可以通過django querysets執行那種搜索嗎?當我嘗試時,它給了我一個例外「列表索引必須是整數,而不是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'}) 
+0

我已經編輯我的問題,請看看再明白問題更好。謝謝。 – Dania

+0

我更新了我的回覆。 – Siegmeyer