如何修改 SplitDateTimeField 的基本 Django 模板?
How can I modify the basic Django template for SplitDateTimeField?
我有一个简单的 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 并重新定义它的渲染方法
通过将该小部件子类化,您可以将任何您想要的内容注入到结果代码中。之后只需简单地使用您自己的小部件和默认的 SplitDateTimeField
2。手动在模板中创建输入
可能是最简单的解决方案,但在我看来却是最丑陋的。手动在模板中创建代码,为名称、ID、值等使用适当的变量。您必须添加 _0、_1 后缀并手动格式化现有值。
3。创建将注入额外 div 的模板标签
您可以创建一些模板标签或过滤器,它们将在默认模板上执行一些文本操作以添加额外的 div。
我有一个简单的 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 并重新定义它的渲染方法
通过将该小部件子类化,您可以将任何您想要的内容注入到结果代码中。之后只需简单地使用您自己的小部件和默认的 SplitDateTimeField
2。手动在模板中创建输入
可能是最简单的解决方案,但在我看来却是最丑陋的。手动在模板中创建代码,为名称、ID、值等使用适当的变量。您必须添加 _0、_1 后缀并手动格式化现有值。
3。创建将注入额外 div 的模板标签
您可以创建一些模板标签或过滤器,它们将在默认模板上执行一些文本操作以添加额外的 div。