Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 是否覆盖用户对象上的默认get_absolute_url?_Django_Django Urls_Django Authentication - Fatal编程技术网

Django 是否覆盖用户对象上的默认get_absolute_url?

Django 是否覆盖用户对象上的默认get_absolute_url?,django,django-urls,django-authentication,Django,Django Urls,Django Authentication,我正在尝试创建一个用于列出对象的通用表。我的User对象上的get\u absolute\u url()返回: /users/<username>/ /users// 虽然我可以创建这个URL,但它与站点布局的其余部分不匹配,所以我正在寻找另一种方法来实现这一点。有没有一种方法可以在不破坏内置身份验证和其他功能的情况下覆盖此值 您可以在settings.py文件中使用设置ABSOLUTE\u URL\u OVERRIDES ABSOLUTE_URL_OVERRIDES = {

我正在尝试创建一个用于列出对象的通用表。我的
User
对象上的
get\u absolute\u url()
返回:

/users/<username>/
/users//

虽然我可以创建这个URL,但它与站点布局的其余部分不匹配,所以我正在寻找另一种方法来实现这一点。有没有一种方法可以在不破坏内置身份验证和其他功能的情况下覆盖此值

您可以在settings.py文件中使用设置
ABSOLUTE\u URL\u OVERRIDES

ABSOLUTE_URL_OVERRIDES = {
    'auth.user': lambda u: "/users/%s/" % u.username,
}
以下是官方文件的链接:

作为旁注:

自django v1.7以来,
django.contrib.auth.models.AbstractUser
不再定义
get\u absolute\u url()
方法(请参见)。

因此,django>v1.7不存在OP的问题,因为您需要定义自定义方法

现在有两种方法可以做到这一点:

  • 在用户模型扩展中定义
    get\u absolute\u url()
    方法
  • 使用中的解决方案创建(而不是覆盖)用户。通过设置获取绝对url()

  • 明亮的设置文件是我没有找的地方。谢谢