检查列表长度后渲染到不同的模板

时间:2013-01-08 12:39:33

标签: python django

Django和Python都是新手。会在此感谢一些建议。我确实搜索过类似的问题,但找不到能解决问题的问题。

这是我写的一个观点。预期的行为是检查列表的长度(区域列表),如果该列表中只有一个对象,则渲染到一个模板,如果有多个对象,则渲染到另一个模板。如果列表中没有对象,则会自动引发404。

    @never_cache
def district_list(request, county_slug):
    districts_list = get_list_or_404(NeigbourhoodPostcodeDistrict, county__slug=county_slug)
    if districts_list.count() == 1:
        context = {
        'districts_list': districts_list,
        }
        return render_to_response('neighbourhood/neighbourhood.html',context,context_instance=RequestContext(request))
    else:
        context = {
            'districts_list': districts_list,
        }
        return render_to_response('neighbourhood/district-list.html',context,context_instance=RequestContext(request))

非常感谢任何帮助

1 个答案:

答案 0 :(得分:4)

您正在寻找the len() builtin

E.g:

if len(districts_list) == 1:
    ...

seq.count()方法计算单个元素在序列中出现的次数,并且需要一个参数(要计数的元素)。