Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django Wagtail:我们有任何选项来编辑任何页面模型的列表显示吗?_Python_Django_Django Models_Wagtail - Fatal编程技术网

Python Django Wagtail:我们有任何选项来编辑任何页面模型的列表显示吗?

Python Django Wagtail:我们有任何选项来编辑任何页面模型的列表显示吗?,python,django,django-models,wagtail,Python,Django,Django Models,Wagtail,我想问您是否有任何选项可以编辑任何Wagtail页面模型的“列表显示”。我认为肯定有一些东西,因为我们可以使用 wagtail.contrib.modeladmin.options.ModelAdmin 例如,我可以像这样将我的电子邮件模型添加到admin.py或hooks.py class EmailAdmin(ModelAdmin): model = Email menu_label = "Emails" menu_icon = "mail"

我想问您是否有任何选项可以编辑任何Wagtail页面模型的“列表显示”。我认为肯定有一些东西,因为我们可以使用

wagtail.contrib.modeladmin.options.ModelAdmin
例如,我可以像这样将我的电子邮件模型添加到admin.pyhooks.py

class EmailAdmin(ModelAdmin):

    model = Email        
    menu_label = "Emails"
    menu_icon = "mail"
    menu_order = 200
    add_to_settings_menu = False
    exclude_from_explorer = False
    empty_value_display = 'N/A'
    list_per_page = 10        
    list_display = ('subject', 'name_surname', 'phone', 'email', 'text_', 'date', 'sent', 'change_seen')

    def name_surname(self,obj):
        return "{0} {1}".format(obj.name, obj.surname)
在该类中,我可以创建自定义的列表显示。我们可以用类似的方法调整wagtail页面模型吗? 事先非常感谢

编辑: 到目前为止,我使用ModelAdmin解决了这个问题,我将我的博客页面模型注册到Wagtail边栏中,在那里我可以更自由地显示更多信息。例如,我跟踪博客文章被浏览的次数

admin.py

from wagtail.contrib.modeladmin.options import ModelAdmin, modeladmin_register, ModelAdminGroup

from .models import BlogPostPage, PostAdvancedPage

class BlogPostPageAdmin(ModelAdmin):

    model = BlogPostPage 
    menu_label = "Standard Blog posts"
    menu_icon = "doc-full"    

    add_to_settings_menu = False
    exclude_from_explorer = False
    empty_value_display = 'N/A'
    list_per_page = 10
    index_view_extra_css = ["css/wagtail.css",]
    list_display = ('title','slug', 'first_published_at', 'owner', 'categories_', 'visited')

    def categories_(self,obj):
        cats = obj.categories.all()
        cats_str = [x.name for x in cats]
        return ', '.join(cats_str)

class PostAdvancedPageAdmin(ModelAdmin):

    model = PostAdvancedPage   
    menu_label = "Advanced Blog posts"
    menu_icon = "doc-full"

    add_to_settings_menu = False
    exclude_from_explorer = False
    empty_value_display = 'N/A'
    list_per_page = 10
    index_view_extra_css = ["css/wagtail.css",]
    list_display = ('title','slug', 'first_published_at', 'owner', 'categories_', 'visited')

    def categories_(self,obj):
        cats = obj.categories.all()
        cats_str = [x.name for x in cats]
        return ', '.join(cats_str)

class ViewGroup(ModelAdminGroup):
    menu_label = 'OverView'
    menu_icon = 'view'  # change as required
    menu_order = 200  # will put in 3rd place (000 being 1st, 100 2nd)
    items = (BlogPostPageAdmin, PostAdvancedPageAdmin)

modeladmin_register(ViewGroup)
到目前为止的结果:

要做到这一点,没有简单的方法-这些列。如果您想在这里添加其他内容,您必须覆盖Wagtail的页面列表模板。非常感谢您的回答。我用ModelAdmin克服了这个问题,我刚刚将我的博客页面模型注册到侧栏中,我有了更多的自由。如果您想在这里添加其他内容,您必须覆盖Wagtail的页面列表模板。非常感谢您的回答。我使用ModelAdmin克服了这个问题,我刚刚将我的博客页面模型注册到侧栏中,我有了更多的自由。