我正在尝试为列出django_tables
个对象创建一个通用表。除了我的get_absolute_urls()
个对象上的User
返回时,我已经完成了所有工作:
/users/<username>/
虽然我可以创建此URL,但它与网站布局的其余部分不匹配,所以我正在寻找另一种方法来执行此操作。有没有办法在不破坏内置身份验证和其他功能的情况下覆盖此值?
答案 0 :(得分:43)
您可以使用设置ABSOLUTE_URL_OVERRIDES
ABSOLUTE_URL_OVERRIDES = {
'auth.user': lambda u: "/users/%s/" % u.username,
}
以下是官方文档的链接:https://docs.djangoproject.com/en/stable/ref/settings/
答案 1 :(得分:0)
作为旁注:
自django v1.7起,django.contrib.auth.models.AbstractUser
不再定义get_absolute_url()
方法(请参见release notes)。
因此django> v1.7不会存在OP的问题,因为您始终需要定义自定义get_absolute_url()
方法。
现在有两种方法可以做到这一点:
get_absolute_url()
方法。ABSOLUTE_URL_OVERRIDES
设置创建(而不覆盖)User.get_absolute_url()
。