我正在使用此视图将字典传递给我的模板 -
views.py
def personlist(request, id):
data = requests.get('http://127.0.0.1:8000/app_name/cities/' + id + '/persons/').json()
context = RequestContext(request, {
'persons': data['results'],'count': data['count'],
})
@register.filter(name='lookup')
def cut(value, arg):
return value[arg]
{{ mydict|lookup:item.name }}
return render_to_response('template.html', context)
其中test_set
是results
内的字典。我正在使用此视图以这种方式呈现模板 -
{% for person in persons %}
<a href="{% url 'person_detail' person.id %}"><p>{{person.name}}</p></a>
<p>{{person.test_set}}</p>
{% endfor %}
但是这只显示整个字典值 - [{u'test_name': u'test', u'date': u'2015-12-15T20:57:51.556145Z'}]
,而我只想要日期。我尝试使用自定义模板尝试使用person.test_set.date
,但它无效。
另外,鉴于名称和日期是否有办法创建查找以显示每日/每周/每月添加的名称?
答案 0 :(得分:1)
您似乎是以错误的方式调用自定义模板。
2.2.1 :007 > user = User.new(name: "", email: "ex@example.com")
=> #<User id: nil, name: "", email: "ex@example.com", created_at: nil, updated_at: nil>
2.2.1 :008 > user.valid?
=> true
我还修改了返回值,以便至少在无法找到密钥的情况下返回消息。
您的评论让我意识到test_set不是字典,它是字典的列表。我想你想先迭代这些,然后得到日期
@register.filter(name='lookup')
def cut(value, arg):
return value.get(arg, '{} not found'.format(arg))
{{ person.test_set|lookup:'date' }}