我刚刚从Django 1.5升级到1.7,现在我的用户对象上没有get_absolute_url
方法。
这曾经有用:
In [1]: from django.contrib.auth.models import User
In [2]: u = User.objects.get(pk=1)
In [3]: u.get_absolute_url()
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-3-5c5e8a279785> in <module>()
----> 1 u.get_absolute_url()
AttributeError: 'User' object has no attribute 'get_absolute_url'
In [4]:
作为参考,这是我在settings.py中的内容:
ABSOLUTE_URL_OVERRIDES = {
'auth.user': lambda u: u'/course/profile/{0}'.format(u.username)
}
关于可能导致这种情况的任何想法?
答案 0 :(得分:2)
自Django 1.7起,AbstractUser
不再定义get_absolute_url
方法。这在release notes中提到。
在Django 1.7中,您无法对没有ABSOLUTE_URL_OVERRIDES
方法的模型使用get_absolute_url
。这已在ticket 11775中修复。您可以将ABSOLUTE_URL_OVERRIDES
与Django 1.7.1(release notes)中的任何模型一起使用。