我有管理面板表单中的页面列表,看起来像屏幕截图。
如何为此或某种排序添加时间排序?我希望具有新表单提交的页面将出现在此列表的顶部。
问问题
40 次
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')
假设您有一个FormIndex
Page 列出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 回答