URL传递我的Django项目中的参数

时间:2017-07-02 13:49:17

标签: python django

我只是Django的初学者,这些天我跟随一个mooc来学习Django,我想建立我的第一个网站,但出了点问题,我想不通。我想写一个带有参数' cate'的正则表达式。在URLS.py中匹配我的view.py中的视频功能,判断是否' cate' eequals' editors'如果是,它将带回属性" editors_choice"的数据。但是,我发现它永远不会改变,所以我打印了#cate'在view.py中发现它总是无,我仍然不知道为什么。

以下是我的代码:

def video(request, cate=None):
    print(cate)
    context = {} =
    if cate is None:
        video_list = Video.objects.all()
    if cate == 'editors':
        video_list = Video.objects.filter(editors_choices=True)
    else:
        video_list = Video.objects.all()
    page_robot = Paginator(video_list, 16)
    page_num = request.GET.get('page')
    try:
        video_list = page_robot.page(page_num)
    except EmptyPage:
        video_list = page_robot.page(page_robot.num_pages)  # raise HTTP404("Empty")
    except PageNotAnInteger:
        video_list = page_robot.page(1)
    context['video_list'] = video_list
    return render(request, 'ten_movie.html', context)

'cate' parameter in urls.py

templete

1 个答案:

答案 0 :(得分:3)

在第一个模式中添加一个正则表达式的字符串结尾字符,以防止它与第二个模式重叠。

url(r'^video/$', video, name='video'),
url(r'^video/(?P<cate>[A-Za-z]+)$', video, name='video'),