Python Django Wagtail:我们有任何选项来编辑任何页面模型的列表显示吗?
我想问您是否有任何选项可以编辑任何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.contrib.modeladmin.options.ModelAdmin
例如,我可以像这样将我的电子邮件模型添加到admin.py或hooks.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克服了这个问题,我刚刚将我的博客页面模型注册到侧栏中,我有了更多的自由。