是的,你可以传入attrs = {'class':'your_class'},但它会将类应用于DateInput和TimeInput。
如果您需要为这两个字段添加不同的类,则可能需要扩展SplitDateTimeWidget,重写init。
class MySplitDateTimeWidget(SplitDateTimeWidget):
def __init__(self, attrs=None, date_format=None, time_format=None):
date_class = attrs.pop('date_class')
time_class = attrs.pop('time_class')
widgets = (DateInput(attrs={'class' : date_class}, format=date_format),
TimeInput(attrs={'class' : time_class}, format=time_format))
super(SplitDateTimeWidget, self).__init__(widgets, attrs)
#forms.py
class MyForm(forms.Form):
test_field = forms.DateTimeField(widget=MySplitDateTimeWidget(attrs={'date_class' : 'foo', 'time_class' : 'bar'}))
我在Django 1.3测试这一点,这将在使用一种叫做“test_field” forms.DateTimeField该窗口小部件时输出以下HTML:
<label for="id_test_field_0">Test field:</label>
<input id="id_test_field_0" class="foo" type="text" name="test_field_0">
<input id="id_test_field_1" class="bar" type="text" name="test_field_1">
我已经试过各种方法复制进入的attrs以保存可能存在的任何其他参数,但是我遇到了错误,不幸的是我今天已经没时间了。这应该让你走,但只会允许你修改字段的类属性。
嗨,感谢您的帮助。我试过使用这个,但我得到以下错误:'元组'对象没有属性'复制' – Dan
我更新了我的代码示例将attrs转换为字典。请试试看。 – Brandon
再次感谢,我在原始问题中写了一个回复,评论框不允许正确的格式。 – Dan