2012-03-09 1 views
2

Compte tenu des modèles:Comment filtrer en fonction du contenu dict d'un DictField sur un modèle utilisant le moteur Django-MongoDB?

class Post(models.Model): 
    datas = ListField(EmbeddedModelField('Comment'),blank=True) 
    data = DictField() 

class Comment(models.Model): 
    name = models.CharField(max_length=255) 
    date = DateField(blank=True, null=True) 

Si nous fixons la variable de données:

{'key':'value'} 

est-il un moyen de filtrer les messages avec 'valeur' ​​clé ==?

En guise d'alternative, qu'en est-il des documents incorporés? Existe-t-il un moyen de filtrer pour un message qui a un auteur avec le nom «Ralph»?

Il semble que cela doive être possible, sinon cet ORM est beaucoup trop limitant pour être utile, ce qui semble improbable.

Répondre

0

Vous pouvez filtrer un message qui a un auteur nommé « Ralph » en utilisant des requêtes brutes:

Post.objects.raw_query({'author.name': "Ralph"}) 
0

Je recommande d'essayer par vous-même, mais le commentaire dans le code

#TODO/XXX: Remove as_lookup_value() once we have a cleaner solution # for dot-notation queries

suggère qu'il fait. Je n'ai jamais vraiment utilisé que des listes.

Questions connexes