1

こんにちは、django でクイズ アプリケーションを作成しています。モバイル アプリケーションで使用するために、データベースを json 形式で取得しました。取得したjson形式は

{

    "quiz": [
        {
            "category": "Python",
            "section": "Programming",
            "qtype": "Mcs",
            "id": 1,
            "level": 0
        },
        {
            "category": "Html",
            "section": "Programming",
            "qtype": "Mc",
            "id": 2,
            "level": 1
        },
        {
            "category": "Php",
            "section": "Theory",
            "qtype": "Yn",
            "id": 3,
            "level": 2
        }
    ]

}

3 つの辞書を持つ内部リスト。これを変換したい

{

    "quiz": [
        {
            "category": "Python -> Programming -> Mcs -> level(0)"
            "id": 1

        },
        {
            "category": "Html -> Programming -> Mc -> level(1)"
            "id": 2
        },
        {
            "category": "Php -> Theory -> Yn -> level(2)"
            "id": 3
        }
    ]

}

値を文字列に変換することは可能ですか? はいの場合は、アイデアを共有してください。

models.py

class Quiz(models.Model):
    category = models.ForeignKey(Category)
    section = models.ForeignKey(Section)
    qtype = models.ForeignKey(QType)    
    LEVELS = (
        (0,'Beginner'),
        (1,'Intermediate'),
        (2,'Expert'),)
    level=models.IntegerField(default=0, choices=LEVELS)


class Category(models.Model):
    name= models.CharField(max_length=100)


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


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

ビュー.py

def ajaxdashboard(request):
    quizs=Quiz.objects.all()
    n={'quiz': dict(id=x.id,category=x.category.name,section=x.section.name,qtype=x.qtype.name,level=x.level) for x in quizs]}  
    return HttpResponse(json.dumps(n), mimetype="application/json")
4

1 に答える 1

0

もちろん、ビューで文字列を生成するだけです:

n = {
    'quiz': [
        {
            'id': x.id,
            'category': ' -> '.join([x.category.name, x.section.name, x.qtype.name, 'level({0})'.format(x.level)])
        }
        for x in quizs
    ]
}  
于 2013-11-07T10:05:59.040 に答える