2017-10-15 6 views
-1

ブラウズ可能なフォームserializers.serializeを返すことに問題があります。Django 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]'['を返します。私は通常のdictまたはリストとして要素を別々に得ることができる必要があります。何が起こっている?

+1

しかし、文字列を返すのは**シリアライゼーション**です**。クエリーセットがほしいのであれば、シリアライザに渡すのはなぜですか? –

+0

私はあなたが何を知っているのか分かりません。 Sringとjsonは別のものです。私はajaxコールをしています。私はあなたが正しい質問をしていないことをお勧めします。 – sretko

+0

あなたはどこかで奇妙な誤解があります。 JSONは文字列のシリアル化形式です。 –

答えて

0

解決策を見つけるだけです。 私のjavascriptファイルvar content = JSON.parse(json.game_frame)にあります。 素晴らしいブラウジングオブジェクトを作成します。

関連する問題