Добавить ссылку для редактирования inline объектов

15 июля 2015 г. 21:05

В Djando 1.8 + для добавления ссылки для редактирования inline объектов достаточно использовать свойство show_change_link = True. Например:

class SiteInline(admin.TabularInline):
    model = Site
    extra = 0
    show_change_link = True


@admin.register(Project)
class ProjectAdmin(admin.ModelAdmin):
    search_fields = ('client', 'title', 'comment')
    list_display = ('title', 'client')

    inlines = (SiteInline, )

Для Djando версии 1.8 и ниже можно сделать следующим образом:

class SiteInline(admin.TabularInline):
    model = Site
    extra = 0

    def admin_link(self, instance):
        url = reverse('admin:{}_{}_change'.format(instance._meta.app_label, instance._meta.module_name),
                      args=(instance.id,))
        format_html('<a href="{}">{}</a>', url, instance)
    admin_link.short_description = 'Редактировать'

    readonly_fields = ('admin_link', )


@admin.register(Project)
class ProjectAdmin(admin.ModelAdmin):
    search_fields = ('client', 'title', 'comment')
    list_display = ('title', 'client')

    inlines = (SiteInline, )

Оцените статью

0 из 5 (всего 0 оценок)

Поля, отмеченные звёздочкой ( * ) , являются обязательными.

Спасибо за ваш отзыв!

Автор статьи

Права на использование материала, расположенного на этой странице http://vivazzi.ru/it/show-change-link/:

Разрешается копировать материал с указанием её автора и ссылки на оригинал без использования параметра rel="nofollow" в теге <a>. Использование:

Автор статьи: Мальцев Артём
Ссылка на статью: <a href="http://vivazzi.ru/it/show-change-link/">http://vivazzi.ru/it/show-change-link/</a>

Подробнее: Правила использования сайта

Комментариев: 0

Вы можете оставить комментарий как незарегистрированный пользователь. Но, зарегистрировавшись, вы сможете получать оповещения об ответах, а также иметь доступ к своему личному аккаунту для просмотра своих комментариев.

Чтобы оставить комментарий от своего имени войдите или зарегистрируйтесь обычным способом или через социальные сети:

Отправить

На данный момент нет специального поиска, поэтому я предлагаю воспользоваться обычной поисковой системой, например, Google, добавив "vivazzi" после своего запроса.

Попробуйте