Есть ли способ добавить прямую ссылку в список просмотра на основе страницы в Wagtail modeladmin? - PullRequest
0 голосов
/ 30 мая 2018

Я использую ModelAdmin для создания списка элементов в модели Article, основанной на Page.Есть ли простой способ добавить ссылку " live " в список modeladmin, похожую на ссылку live, которая отображается через интерфейс дерева страниц?Ниже мой класс в wagtail_hooks.py

class ArticlePageModelAdmin(ModelAdmin):
    model = ArticlePage
    menu_label = 'Articles'  
    menu_icon = 'folder-open-inverse'  
    menu_order = 200  
    add_to_settings_menu = False  
    exclude_from_explorer = False  
    list_display = ('title',  'author','article_type', 'featured_status', 'first_published_at','live',)
    list_filter = ('article_type', 'featured_status', 'author')
    search_fields = ('title',)

modeladmin_register(ArticlePageModelAdmin)

1 Ответ

0 голосов
/ 07 июня 2018

list_display принимает строку, представляющую атрибут в ModelAdmin.Этот вызываемый элемент принимает параметр obj, который является экземпляром модели.Например:

list_display = ['title', 'live_url']

def live_url(self, obj):
    return mark_safe(
        '<div class="status">'
             '<a href="{}" target="_blank" class="status-tag primary">live</a>'
         '</div>'.format(obj.get_url())
    )

Я не просматривал черновики страниц (еще не опубликованные или не отозванные).Я тоже ничего не делал с последними ревизиями.Там может быть более новая редакция.Чтобы получить это право, повторно используйте методы, которые существуют на экземпляре страницы.Например: status_string.

Вы поняли идею, счастливого кодирования!;)

...