Django装饰器--@permalink

- 用法:拼接url

@permalink
def get_absolur_url(self):
    return "cms-story", {}, {'slug': self.slug}

 


函数返回三个参数:第一个参数是url映射name,第二个一般为空,第三个参数是一个dict

- 源码

def permalink(func):

    from django.urls import reverse

    @wraps(func)
    def inner(*args, **kwargs):
        bits = func(*args, **kwargs)
        return reverse(bits[0], None, *bits[1:3])
    return inner

 


通过reverse解析包装一层
posted @ 2017-06-26 01:24  兔头咖啡  阅读(678)  评论(0编辑  收藏  举报


作者:兔头咖啡
出处:http://www.cnblogs.com/wj5633/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。