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解析包装一层
原文地址:https://www.cnblogs.com/wj5633/p/7078678.html