python - 当 wagtail BooleanField 为 true 时启用 wagtail DateField

标签 python django wagtail

我需要默认禁用 wagtail DateField,但如果内容作者选中一个框(wagtail BooleanField),则应启用该字段并且该字段是必需的。我正在努力寻找解决此问题的最佳方法,我还没有找到有关如何执行此操作的文档。我正在考虑使用 Django 信号或 wagtail 钩子(Hook),但对于我认为应该是常见用例的情况来说,它似乎确实是一个复杂的解决方案。所以我想知道是否有人有更好的选择或为我指出正确的方向。

最佳答案

我认为目前在 Wagtail 中这是不可能的(从 Wagtail 2.2 开始)。至少不是天生的。

但是,您可以做的是使用如下代码片段将自定义 JavaScript 添加到您的管理中:

from django.contrib.staticfiles.templatetags.staticfiles import static
from django.utils.html import format_html

from wagtail.core import hooks


@hooks.register("insert_global_admin_js", order=100)
def global_admin_js():
    """Add custom.js to Wagtail Admin."""
    return format_html('<script src="{}"></script>', static("js/custom.js"))

然后在您的 custom.js 文件中,您可以添加一个 JavaScript 事件来检测 bool 字段是否被选中,然后找到并选择 DateField 并禁用或隐藏它。

正如 Willem Van Onsem 所提到的,您需要将 DateField 设置为空且为空,以便在 DateField 为空时可以保存页面(作为表单)。空的。

关于python - 当 wagtail BooleanField 为 true 时启用 wagtail DateField,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52486718/

相关文章:

python - 从模块导入 func1, func2 作为 name1, name2

python - Django:在不删除模型的情况下覆盖 AutoField 的 verbose_name

python - Django/Wagtail 一些图片上传错误500

python - 如何从唯一列表和 Counter 对象创建计数列表?

python - 从文本文档中查找单词并删除数据框中的相应行 - python

python - 我可以使用身份哈希器进行测试吗?

SQL 可搜索缓存 - 高可扩展性

django - 如何从 Wagtail 更改侧边栏?

python - 如何在 wagtail 中正确使用 taggit

php - Django 中的 ORM 与 PHP Doctrine