gpt4 book ai didi

python - 在标题上移动 Wagtail Admin list_filter - 列表过滤器覆盖表数据

转载 作者:行者123 更新时间:2023-12-05 03:52:55 24 4
gpt4 key购买 nike

enter image description here我有一个模型,其字段如图所示。我在 wagtail_hooks.py 中创建了以下 ModelAdmin。

class opportunitiesAdmin(ModelAdmin):
model = opportunities
menu_label='Opportunities'
menu_icon='fa-briefcase'
list_display = ['reference_no','stage','opportunity_name','expected_value','probability','BDM','sector_code','service_code','source_code','date_entered','close_date']
list_filter = ('stage',)
menu_order=435

问题是列表过滤器覆盖了数据。我想知道我能否将此列表过滤器作为下拉列表移动到标题。

最佳答案

好问题,我认为这可能是 Wagtail 的 ModelAdmin 的一个潜在问题,提出问题可能是件好事。存在与“折叠状态”相关的类似问题 here .

选项 1 - CSS 变通

一种仅使用 CSS 的快速解决方法是将内容“移动”到按钮附近的顶部。您可能想要优化以在不同的视口(viewport)断点内工作,而且这不是最容易访问的解决方案,但它可以让您快速到达目的地。

您可以通过 index_view_extra_css 将 css 添加到 ModelAdmin 索引列表中.

下面的示例方法假设这是桌面 View ,用户可以“悬停”在移动到标题的列表过滤器上。

wagtail_hooks.py
class opportunitiesAdmin(ModelAdmin):
model = opportunities
#...
index_view_extra_css = ('css/modeladmin-index.css',)
static/css/modeladmin-index.css
@media screen and (min-width: 50em) {
.changelist-filter {
position: fixed;
top: 0;
right: 15rem;
z-index: 1;
background: white;
transform: translateY(-100vh);
}

.changelist-filter h2 {
margin-top: 1rem;
transform: translateY(100vh);
}

.changelist-filter:hover {
transform: none;
}

.changelist-filter:hover h2 {
margin-top: 0;
transform: none;
}
}

选项 2 - 修改模板

您可以更进一步,修改使用的模板(在每个模型或所有索引页面的基础上)。参见 ModelAdmin Overriding Templates文档。

对于底层的 index.html 模板,您可以查看 contrib/modeladmin/templates/modeladmin/index.html 的来源.

下面的示例扩展了默认索引模板并使 block filters 不呈现任何内容。然后,查看源代码,复制滤镜呈现的方式并将它们放入 block header_extra 中。

一开始,内容被放入一个具有属性 data-dropdown 的 div 中,它将在下拉列表中呈现内部内容,第一个元素是“触发器”,第二个是选项。

注意:这是一个粗略的示例,可能需要进一步的样式和元素属性。

templates/modeladmin/index.html
{% extends 'modeladmin/index.html' %}
{% load i18n modeladmin_tags %}

{% block header_extra %}

{% if view.has_filters and all_count %}
<div {{ self.attrs }} class="c-dropdown" data-dropdown>
<a href="javascript:void(0)" class="c-dropdown__button u-btn-current">
<strong>{% trans 'Filter' %}</strong>
<div data-dropdown-toggle="" class="o-icon c-dropdown__toggle [ icon icon-arrow-down ]"></div>
</a>
<div class="c-dropdown__menu u-toggle u-arrow u-arrow--tl u-background">
{% for spec in view.filter_specs %}{% admin_list_filter view spec %}{% endfor %}
</div>
</div>
{% endif %}

{{ block.super }}
{% endblock %}

{% block filters %}
{% comment %} make content blank {% endcomment %}
{% endblock %}

关于python - 在标题上移动 Wagtail Admin list_filter - 列表过滤器覆盖表数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61952277/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com