覆盖 User 对象上的默认 get_absolute_url?
我正在尝试制作一个通用表来列出 django_tables
对象。我已经一切正常,除了我的 User
对象上的 get_absolute_urls()
返回:
/users/<username>/
虽然我可以创建此 URL,但它与其余的不匹配网站布局,所以我正在寻找另一种方法来做到这一点。有没有办法在不破坏内置身份验证和其他功能的情况下覆盖此值?
I'm trying to make a generic table for listing django_tables
objects. I've got everything working, except that the get_absolute_urls()
on my User
objects returns:
/users/<username>/
While I could create this URL, it doesn't match with the rest of the site layout, so I'm looking for another way to do this. Is there a way to override this value without breaking the built in authentication and other functionality?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您可以使用设置
ABSOLUTE_URL_OVERRIDES
在 settings.py 文件中执行此操作,这是官方文档的链接:https://docs.djangoproject.com/en/stable/ref/settings/
You can do this in your settings.py file using the setting
ABSOLUTE_URL_OVERRIDES
Here's a link to the official docs: https://docs.djangoproject.com/en/stable/ref/settings/
附注:
自 django v1.7 起,
django.contrib.auth.models.AbstractUser
不再定义get_absolute_url()
方法(参见发行说明)。所以OP的django 不会存在问题> v1.7 因为您无论如何都需要定义自定义
get_absolute_url()
方法。现在有两种方法可以做到这一点:
get_absolute_url()
方法。User.get_absolute_url()
通过ABSOLUTE_URL_OVERRIDES
设置。As a side note:
Since django v1.7 the
django.contrib.auth.models.AbstractUser
no longer defines aget_absolute_url()
method (see release notes).So the OP's problem will not exist with django > v1.7 as you anyways need to define your custom
get_absolute_url()
method.Now there are two way to do this:
get_absolute_url()
method in your User model extension.User.get_absolute_url()
through theABSOLUTE_URL_OVERRIDES
setting.