django - 如何修改 SplitDateTimeField 的基本 Django 模板?

标签 django django-models django-forms django-templates django-views

我有一个简单的 SplitDateTime 字段:

meeting_datetime_start = forms.SplitDateTimeField(input_date_formats=["%a %d/%m/%Y"], input_time_formats=["%I:%M %p"])

这将呈现以下 HTML:

<input id="id_meeting_datetime_start_0" name="meeting_datetime_start_0" type="text">
<input id="id_meeting_datetime_start_1" name="meeting_datetime_start_1" type="text">

我正在使用 bootstrap,并且想要添加自定义模板来以不同方式呈现此 HTML,例如:

<div class="col-xs-2">
   <input id="id_meeting_datetime_start_0" name="meeting_datetime_start_0" type="text">
</div>
<div class="col-xs-3">
    <input id="id_meeting_datetime_start_1" name="meeting_datetime_start_1" type="text">
</div>

如何修改 SplitDateTimeField 的基本 Django 模板?

最佳答案

您有一些可能的解决方案。

1。子类 SplitDateTimeWidget 并重新定义其渲染方法

通过对该小部件进行子类化,您可以将任何您想要的内容注入(inject)到结果代码中。之后,只需使用您自己的小部件和默认的 SplitDateTimeField

2。手动在模板中创建输入

可能是最简单的解决方案,但在我看来是最丑陋的。在模板中手动创建代码,使用名称、id、值等适当的变量。您必须添加 _0、_1 后缀并手动格式化现有值。

3。创建将注入(inject)额外 div 的模板标签

您可以创建一些模板标签或过滤器,它们将在默认模板上执行一些文本操作以添加其他 div。

关于django - 如何修改 SplitDateTimeField 的基本 Django 模板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31916933/

相关文章:

mysql - 如果字段存在,Django 过滤查询集

django: sqlite3.OperationalError: 没有这样的表

python - Django 模型继承与 OneToOne 字段

django - 'CheckoutView' 对象没有属性 'object'

python - 为什么我的 Django 表单没有引发验证错误?

python - 在指定位置提供 django 应用程序 (NGINX)

python - 如何解决TypeError : on_delete must be callable on Django models?

python - Django - 序列化 parent 协会

python - Django 中的 ForeignKey 形式限制

django - 在 Django 中,symmetric=True 有什么作用?