0

我有管理面板表单中的页面列表,看起来像屏幕截图。
如何为此或某种排序添加时间排序?我希望具有新表单提交的页面将出现在此列表的顶部。 在此处输入图像描述

4

2 回答 2

0

使用 filter_form_submissions_for_user 钩子:https ://docs.wagtail.io/en/stable/reference/hooks.html#filter-form-submissions-for-user

# wagtail_hooks.py

# Sort submission form list by published time
@hooks.register('filter_form_submissions_for_user')
def submissions_filter(user, queryset):
    return queryset.order_by("-last_published_at")
于 2021-03-22T06:22:06.983 回答
0

您可以为您的模型构建一个 QuerySet 并根据您的需要设置排序。从文档中引用,

构造 QuerySet 时必须显式应用排序:

news_items = NewsItemPage.objects.live().order_by('-publication_date')

假设您有一个FormIndexPage 列出Form模型,您可以像这样更新其上下文:

class FormIndexPage(Page):
    ...

    def get_context(self, request):
        context = super().get_context(request)
        context['form_entries'] = Form.objects.live().order_by('-your_date_field')
        return context

然后在您的模板中使用更新后的上下文,

{% for entry in form_entries %}
    {{ entry.title }}
{% endfor %}
于 2021-02-16T05:20:17.553 回答