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

时间:2015-08-10 10:13:47

标签: 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 个答案:

答案 0 :(得分:1)

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

1。 Subclass SplitDateTimeWidget并重新定义它的渲染方法

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

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

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

3。创建将注入额外div的模板标记

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