Результат Django MongoDB QuerySet в JSON - PullRequest
1 голос
/ 07 ноября 2011

У меня есть эти модели:

class Projects(models.Model):
    projectName =models.CharField(max_length = 100,unique=True,db_index=True)
    projectManager = EmbeddedModelField('Users')

class Users(models.Model):
    name = models.CharField(max_length = 100,unique=True)
    designation = models.CharField(max_length =100 )

Мне нужно вернуть JSON из моего обзора для всех объектов Projects, я пробовал json.dumps (Projects.objects.all ()), но это не сработало,как мне это сделать ??

РЕДАКТИРОВАТЬ: Я использовал json.dumps (Projects.objects.all (). values ​​()) и получил это:

Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "D:\Python27\lib\json\__init__.py", line 238, in dumps
    **kw).encode(obj)
  File "D:\Python27\lib\json\encoder.py", line 203, in encode
    chunks = list(chunks)
  File "D:\Python27\lib\json\encoder.py", line 436, in _iterencode
    o = _default(o)
  File "D:\Python27\lib\json\encoder.py", line 178, in default
    raise TypeError(repr(o) + " is not JSON serializable")
TypeError: [{'projectName': u'HELLO', 'projectManager': {u'id': u'4eb3b792b990a24e49f6bb26', u'name': u'anshul', u'designation': u'programmer', u'teams': []}, '
id': u'4eb3b7d0e814520db4000000'}] is not JSON serializable  

Теперь я получаю результат, чего хочу, но почему это также дает мне ошибку.

Ответы [ 2 ]

1 голос
/ 07 ноября 2011

Попробуйте Jason.dumps-результат Queryset.values ​​() .

0 голосов
/ 07 ноября 2011

Querysets не сериализуемы. Вы можете попробовать использовать список (self.objects) вместо self.objects, чтобы заставить набор запросов обрабатываться как список. В вашем случае попробуйте что-то вроде этого

json.dumps(list(Projects.objects.all().values()))
...