在Python Django中使用Json

时间:2015-12-15 23:05:17

标签: python json django django-rest-framework

我正在尝试使用以下格式的API中的数据。 count可以多于一个 -

{u'count': 1, u'previous': None, u'results': [{u'url': u'http://127.0.0.1:8000/offapp/cities/', u'city_name': u'Kolkata', u'id': 1}], u'next': None}

我使用以下方法来使用json -

views.py

def employee(request):
    data = requests.get('http://127.0.0.1:8000/offapp/cities/').json()
     context = RequestContext(request, {
    'cities': data.results,
})
return render_to_response('template.html', context)

template.py

{% for city in cities %}
 <a href="{% url 'next_view_name' city.id %}"><p>{{city.city_name}}</p></a>
{% endfor %}

但是django似乎无法解析名称或ID并给出错误 -

AttributeError: 'dict' object has no attribute 'city_name'

使用此数据的正确方法是什么?我希望能够在我的模板中使用json的results中的所有数据,并使用id来反向匹配并使用id转到下一个视图。

2 个答案:

答案 0 :(得分:1)

我没有使用过请求json,但是看一下你应该将它作为常规json模块的字典使用的文档。 在您的代码中使用city.city_name,然后在您的模板中使用Ext.define('Admin.view.main.Viewport', { extend: 'Ext.container.Viewport', xtype: 'mainviewport', requires: [ 'Ext.list.Tree', 'Ext.rtl.*' ], rtl: true, controller: 'mainviewport', (...)

Django模板使用点查找:当模板系统遇到变量名中的点时,它会尝试字典查找。

答案 1 :(得分:0)

看起来'city_name'data.results[0]的属性,而不是data.city。抱歉,我无法测试requests.get(url).json(),因此可能需要data['results'][0]