Доступ к User.get_absolute_url в Django 1.7

Я только что обновился с 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)
}

Любые идеи относительно того, что может быть причиной этого?

1 ответ

Решение

Начиная с Django 1.7, AbstractUser больше не определяет get_absolute_url метод. Это упоминается в примечаниях к выпуску.

В Django 1.7 нельзя было использовать use ABSOLUTE_URL_OVERRIDES с моделями, которые не имеют get_absolute_url метод. Это было исправлено в билете 11775. Ты можешь использовать ABSOLUTE_URL_OVERRIDES с любой моделью, начиная с Django 1.7.1 ( примечания к выпуску).

Другие вопросы по тегам