1

我刚刚从 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)
}

关于可能导致这种情况的任何想法?

4

1 回答 1

2

从 Django 1.7 开始,AbstractUser不再定义get_absolute_url方法。这在发行说明中有所提及。

在 Django 1.7 中,您不能将 useABSOLUTE_URL_OVERRIDES与没有get_absolute_url方法的模型一起使用。这已在票 11775中修复。ABSOLUTE_URL_OVERRIDES从 Django 1.7.1(发行说明)开始,您可以使用任何模型。

于 2014-09-08T23:29:40.630 回答