【发布时间】:2015-07-01 04:29:43
【问题描述】:
我正在使用 Django 的内置身份验证模型。
如何设置get_absolute_url 而不用自定义身份验证模型替换整个身份验证模型?
【问题讨论】:
标签: python django django-models django-urls django-authentication
我正在使用 Django 的内置身份验证模型。
如何设置get_absolute_url 而不用自定义身份验证模型替换整个身份验证模型?
【问题讨论】:
标签: python django django-models django-urls django-authentication
您需要替换用户模型。但是你可以简单地从AbstractUser继承,它已经为你定义了所有的字段,所以你只需要重写你想要的方法:
class MyUser(AbstractUser):
def get_absolute_url(self):
return ...
然后只需在 settings.py 中执行 AUTH_USER_MODEL = 'my_app.MyUser',就可以开始了。
【讨论】:
Group做同样的事情吗?
您可以从内置模型继承,例如User。
class Author(User):
def get_absolute_url(self):
return what_you_want
我的第一个答案和接受的一样,但是在与提问的人沟通后,我做了一些改变。但为什么我总是被投票否决?请先看评论。
【讨论】:
{{ author.get_absolute_url }} 等。
OneToOneField,这样你就可以像User.author.get_absolute_url一样使用了
get_absolute_url 方法。
many different models 现在都可以引用新模型。所以你不需要在所有模型中都创建get_absolute_url 方法,只需要一个。