Доступ к 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 ( примечания к выпуску).