如何更改 ModelForm 中所有 Django 日期字段的默认小部件?

2024-06-21

给定一组典型模型:

# Application A
from django.db import models
class TypicalModelA(models.Model):
    the_date = models.DateField()

 # Application B
from django.db import models
class TypicalModelB(models.Model):
    another_date = models.DateField()

...

如何更改默认小部件allDateFields 到自定义 MyDateWidget?

我这样问是因为我希望我的应用程序有一个 jQueryUI 日期选择器来输入日期。

我考虑过使用自定义小部件扩展 django.db.models.DateField 的自定义字段。这是实施这种全面变革的最佳方式吗?这样的更改将需要专门将特殊的 MyDateField 导入到每个模型中,这是劳动密集型的,容易出现开发人员错误(即一些模型。DateField 将通过),并且在我看来似乎是不必要的重复工作。另一方面,我不喜欢修改可以被认为是 models.DateField 规范版本的内容。

感谢您的想法和意见。


您可以在您的ModelForm类,称为formfield_callback。这应该是一个采用 Django 模型的函数Field实例作为参数,并返回一个表单Field实例以形式表示它。

然后你所要做的就是查看传入的 model 字段是否是一个实例DateField如果是这样,请返回您的自定义字段/小部件。如果没有,模型字段将有一个名为的方法formfield您可以调用它来返回其默认表单字段。

所以,像这样:

def make_custom_datefield(f):
    if isinstance(f, models.DateField):
        # return form field with your custom widget here...
    else:
        return f.formfield(**kwargs)

class SomeForm(forms.ModelForm)
    formfield_callback = make_custom_datefield

    class Meta:
        # normal modelform stuff here...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何更改 ModelForm 中所有 Django 日期字段的默认小部件? 的相关文章

随机推荐

  • 如何使用命令行压缩指定文件夹

    你们能告诉我如何将指定的文件压缩到同一个 Zip 文件中吗 让我告诉我我的文件夹是如何填充的 任务调度程序有我的数据库的备份 并每天将它们保存到文件中 它每天创建 4 个数据库备份 这意味着每天会多出 4 个文件 因此 我需要将新创建的备份
  • 研究最佳码宽? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 如果您在选择的 IDE 中启用 查看右边距 则它可能会默认为 80 个字符 我倾向于将其更改为 120
  • C++ 数组中的多字节 UTF-8

    我在处理数组中的 3 字节 Unicode UTF 8 字符时遇到了问题 当它们位于 char 数组中时 我收到多字符字符常量和隐式常量转换警告 但当我使用 wchar t 数组时 wcout 根本不返回任何内容 由于项目的性质 它必须是数
  • PL/SQL 中无法选择 count(*)

    DECLARE rec count integer default 0 str varchar 100 BEGIN str select count into rec count from emp table EXECUTE IMMEDIA
  • octobercms 任务调度不起作用

    我正在使用基于 Laravel 的 OctoberCMS 我没有 SSH 访问我的服务器的权限 每天我需要删除一些注册后 24 小时内未激活帐户的用户 所以我正在考虑使用任务调度 如 cronjobs 根据 10 月 CMSdocs htt
  • 具有全局上下文的 Android 单例

    根据 Android 文档 它指出 通常不需要子类化应用程序 在大多数情况下 静态单例可以以更加模块化的方式提供相同的功能 方式 如果您的单例需要全局上下文 例如注册 广播接收器 检索它的函数可以给出 内部使用的上下文Context get
  • Linux下显卡内存使用情况

    Linux下有哪些工具可以监控显卡内存使用情况 NVIDIA 性能套件 http developer nvidia com content nvidia perfkit有Linux版本 可以实时监控各种显卡属性 包括显卡内存使用情况 显然
  • python中路径的跨平台分割

    我想要与此具有相同效果的东西 gt gt gt path foo bar baz file gt gt gt path split path rsplit 1 gt gt gt path split foo bar baz file 但这也
  • Windows 10 上的 Git 问题

    这个问题与任何 git 配置或存储库无关 它与程序 Gith Bash 和操作系统 Windows 10 有关 当我在 Windows 配置文件上安装并自定义 Git Bash 时 它就开始了 工具栏上从未出现 Git 图标 这让我很困扰
  • 什么时候适合在 PHP 中使用引用传递?

    在C 中 如果将一个大数组传递给函数 则需要通过引用传递它 这样它就不会被复制到新函数中浪费内存 如果您不想修改它 可以通过 const 引用传递它 任何人都可以验证通过引用传递也可以节省我在 PHP 中的内存吗 我知道 PHP 不像 C
  • React Native/TypeScript/测试库/Jest 的设置不起作用

    我正在尝试设置一个 React Native TypeScript 应用程序以使用 Jest 进行测试和 testing library react native 到目前为止我收到这个错误 Warning React createEleme
  • 如何在 Android 上以编程方式取消配对或删除配对的蓝牙设备?

    该项目是使用我的 Android 手机连接我的 arduino 设备 但我怎样才能取消配对 我看到配对列表似乎存储在蓝牙适配器可以随时检索的位置 附 第一 我知道长按已配对的设备会取消配对 但这里的问题是我怎样才能以编程方式实现这一点 2
  • 用输入字段 Javascript/Angular2 替换某些单词

    我有一根绳子 我喜欢橙色 蓝色 黑色 粉色 玫瑰色 黄色 白色 黑色 是否可以用输入字段替换黄色和黑色 以便我可以输入自己的颜色 const a string I like orange blue black pink rose yello
  • Hudson 构建时趋势插件?

    是否有一个插件可以让我为 hudson 构建创建一个 趋势 图 显示该项目的构建时间 我的任务是加快构建速度 并且我想在加速过程中展示出良好的趋势 这是开箱即用的支持 http SERVER hudson job JOBNAME build
  • VBS 与 PowerShell:哪个更轻?

    如果我需要一个可以在系统中以最少的努力执行的脚本 我会选择哪个 通过查看任务管理器中的进程 内存 私有工作集 wscript exe 2 068Kpowershell exe 33 144K Thanks 这里存在工作守恒定律 如果机器做的
  • 我们可以通过 Facebook 的 API 访问企业页面上的“热门时段”吗?

    我正在为酒吧和餐馆构建一个网络应用程序 我发现 Facebook 在商业页面上有一个很棒的功能 称为 热门时段 可以告诉您某个地方的繁忙程度和时间 Facebook 的文档似乎没有提及任何相关内容 有谁知道这些信息是否可以通过 API 访问
  • 如何使 dc.js 中的图形在固定维度 div 内可滚动?

    我一直在使用 dc js 制作一些图表 并将一些制造商的数量绘制在行图中 当制造商数量增加时 行宽变得非常小并且难以区分 我尝试在CSS中使用overflow scroll 但它也会随着图表滚动比例 有一种方法可以做到这一点 我有 4 个文
  • 有条件地忽略属性序列化

    我有一个 Asp Net WebApi 项目 我想返回 Json 格式的产品列表和一个特定产品 这是我的产品型号 public class Product public int Id get set public string ShortS
  • WM_CLOSE 和 SC_CLOSE 之间的区别

    我只是想知道这两个消息常量之间有什么区别 我应该使用哪一个WndProc重写时的方法 用于处理关闭按钮消息 WM CLOSE http msdn microsoft com en us library windows desktop ms6
  • 如何更改 ModelForm 中所有 Django 日期字段的默认小部件?

    给定一组典型模型 Application A from django db import models class TypicalModelA models Model the date models DateField Applicati