Django. AttributeError: module 'django.db.models' has no attribute 'permalink'
В новых версиях Django декоратор @pemalink для получения адреса страницы перестал признан устаревшим и перестал работать. Причины - дублирования функционала с функцией reverse() и возможные проблемы в безопасности.
Для исправления необходимо удалить старый декоратор, добавить импорт функции reverse, и изменить ответ в соответствии с параметрами функции.
Пример рефакторинга кода со старой версии на новую.
# старый код
@models.permalink
def get_absolute_url(self):
return 'news.page', [str(self.slug)]
# новый код
def get_absolute_url(self):
from django.urls import reverse
return reverse('news.page', args=[str(self.slug)])