Подтвердить что ты не робот

Для модели django, как я могу получить URL-адрес администратора django для добавления другого или списка объектов и т.д.?

Насколько мне нравится документация django, раздел в закладках в admin странно расплывчато.

Мой вопрос таков: если у меня есть представление, и у меня есть модель django (или, в некоторых случаях, фактический объект), как я могу добраться до соответствующих страниц администрирования для этой модели (или объекта)? Если у меня есть объект coconut_transportation.swallow.objects.all() [34], как я могу перейти прямо к странице администратора, чтобы отредактировать эту конкретную ласточку?

Аналогично, как я могу получить URL-адрес страницы администратора, чтобы добавить еще одну ласточку?

4b9b3361

Ответ 2

Вы можете получить это из фактического экземпляра объекта, это сработало для меня:

from django.core import urlresolvers
from django.contrib.contenttypes.models import ContentType

content_type = ContentType.objects.get_for_model(object.__class__)
object_admin_url = django.core.urlresolvers.reverse("admin:%s_%s_change" % (content_type.app_label, content_type.model), args=(object.pk,))

Смотрите это: http://djangosnippets.org/snippets/1916/

Ответ 3

Фактически вы можете получить информацию без запроса в ContentTypes

Просто добавьте это в свой класс модели:

def get_admin_url(self):
    return urlresolvers.reverse("admin:%s_%s_change" %
        (self._meta.app_label, self._meta.model_name), args=(self.pk,))