Документация гласит, что если для модели определен метод get_absolute_url()
, то он используется в Django Admin для кнопки «ПРОСМОТР НА САЙТЕ»:
В одном месте Django использует get_absolute_url () находится в приложении администратора.Если объект определяет этот метод, страница редактирования объекта будет иметь ссылку «Просмотр на сайте», которая приведет вас непосредственно к общему представлению объекта, как указано в get_absolute_url ().
Через некоторое времявремя отладки интересно, почему это не называется.И тогда я обнаружил, что он даже не вызван в источнике Джанго.
https://github.com/django/django/blob/8b3f1c35dd848678225e8634d6880efeeab5e796/django/contrib/admin/options.py#L290
elif self.view_on_site and hasattr(obj, 'get_absolute_url'):
# use the ContentType lookup if view_on_site is True
return reverse('admin:view_on_site', kwargs={
'content_type_id': get_content_type_for_model(obj).pk,
'object_id': obj.pk
})
Это ошибка?