为什么Django序列化返回字符串

时间:2017-10-15 14:39:12

标签: python django

我在返回serializers.serialize可浏览的内容时遇到问题。

我的模特:

class BowlingGame(models.Model):
    Frame = models.PositiveSmallIntegerField()
    FrameRow = models.PositiveSmallIntegerField()
    Result = models.PositiveSmallIntegerField(blank=True, null=True)
    StrikeSpare = models.PositiveSmallIntegerField(blank=True, null=True)
    StrikeSpareInfo = models.CharField(max_length=1, blank=True, null=True)
    Time = models.DateTimeField(blank=True, null=True)
    GameId = models.PositiveIntegerField()
    StateOfGame = models.PositiveSmallIntegerField(default=1)

    class Meta:
        ordering = ('GameId',)

    def __str__(self):
        return str(self.GameId)

我接下来会做什么:

>>> from django.core import serializers
>>> from django.db.models import Max
>>> from game.models import BowlingGame
>>> a = BowlingGame.objects.all().aggregate(Max('GameId'))['GameId__max']
>>> game_frame = BowlingGame.objects.filter(GameId=a)
>>> me = serializers.serialize('json', game_frame, fields=('Frame', 'FrameRow'))
>>> me
'[{"model": "game.bowlinggame", "pk": 2356, "fields": {"Frame": 1, "FrameRow": 1}}, {"model": "game.bowlinggame", "pk": 2357,......}}]'

这似乎是字符串

>>> me[0]
'['

我正在寻找查询集的第一个元素。

我尝试了更多的东西:

>>> me = serializers.serialize('json', [game_frame, ], fields=('Frame', 'FrameRow'))

AttributeError: 'QuerySet' object has no attribute '_meta'

我的问题:返回字符串是否正常?我如何浏览对象。事实上,我在AJAX中使用它但它是一样的。 json.game_frame[0]返回'['。我需要能够像普通字典或列表一样单独获取元素。发生了什么事?

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。 在我的javascript文件var content = JSON.parse(json.game_frame)中。 它创建了很好的浏览对象。