博客五部曲之一 - 简单博客


1245 浏览 5 years, 4 months

18 实例动态URL路由

版权声明: 转载请注明出处 http://www.codingsoho.com/

在上面的例子中,我们固定地使用title内容来获取对象条目,但实际使用中,往往我们需要动态地去访问各种条目,这就需要动态路由。Django的URL正则表达式提供了这种灵活的方式。

下面的URL表中,给detail视图添加一个id参数用于传递Post对象的ID

urlpatterns = [
    url(r'^(?P<id>\d+$)', views.post_detail),    
]

同时,修改post_detail函数,增加入参id,这个入参将会传递给get_object_or_404函数用于查找对应的Post对象。

def post_detail(request, id=None):
    instance = get_object_or_404(Post, id=id)
    context = {
        "title" : instance.title,
        "instance" : instance
    }
    return render(request, "post_detail.html",context)