在for循环中使用python字典

时间:2016-05-26 16:39:45

标签: python django dictionary

我正在使用django开发一个项目。 我正在使用python字典在for循环中显示数据。我根据字典中的要求使用以下代码设置了动态密钥。

abc = {}

for user in users
 abc[user] = "some dynamic data"

context = {
            'contributors ': abc
        }
return render(request, 'contacts.html', context)

我将上面的代码发送到我的模板,以显示每个用户的数据。

{% for contributor in contributors %}

    {% for contributor_mp in contributor %}
        {{  contributor_mp }}
    {% endfor %}


{% endfor %}

我甚至无法在视图中访问我的代码,因为当我尝试序列化词典时遇到错误

error:'long' object has no attribute '_meta'

我在下面用来显示我的abc字典:

json_data = serializers.serialize("json", abc,use_natural_foreign_keys=True)
return HttpResponse(json_data)

所以我用过 json_data = serializers.serialize(“json”,abc [123],use_natural_foreign_keys = True)         返回HttpResponse(json_data)

并得到类似下面的内容(经过验证的json):

[{
    "fields": {
        "status": 0,
        "description": "Fresh & Healthy",
        "name": "Fresh & Healthy",
        "public": false,
        "custom_type": null,
        "user": "mpowner",
        "image_url": 
        "course_type": 1,
        "type": 1
    },
    "model": "mealplan",
    "pk": 140
}, {
    "fields": {
        "status": 0,
        "description": "evening snacks",
        "name": "evening snacks",
        "public": false,
        "custom_type": "health and taste",
        "user": "mpowner",
        "image_url": 
        "course_type": 1,
        "type": 1
    },
    "model": "mealplan",
    "pk": 155
}]

现在我的问题是,当我发送给我的模板时,我得到了一个

error:'long' object is not iterable

由于这是我在python中的第一个项目,我基本上是一个php开发人员,我感到非常不舒服面对这些错误。请帮助解决这个并建议一些其他方式来使用像数组(多维一个)蟒。

1 个答案:

答案 0 :(得分:4)

要在django模板中迭代dict,您需要使用items

{% for contributor, dynamic_data in contributors.items %}
    {{ user }} {{ dynamic_data }}
{% endfor %}