はい、attrs = {'class': 'your_class'}を渡すことはできますが、クラスはDateInputとTimeInputの両方に適用されます。
両方のフィールドに別のクラスを追加する必要がある場合は、おそらくSplitDateTimeWidgetを拡張してinitをオーバーライドする必要があります。
<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">
私はにさまざまな方法を試してみた:私はforms.DateTimeFieldにそのウィジェットを使用して出力次のHTMLは、「test_fieldを」と呼ばれますジャンゴ1.3、でこれをテストしてみた
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'}))
そこにいるかもしれない他のパラメータを保存するために入ってくるattrsをコピーしますが、私はエラーに遭遇しています。残念ながら、今日は時間がなくなりました。これはあなたに行かなければなりませんが、フィールドのクラスattrの変更のみを許可します。
こんにちは、ありがとうございます。私はこれを使用しようとしましたが、次のエラーが表示されます。 'tuple'オブジェクトに属性 'copy'がありません – Dan
attrsをdictに変換するコードサンプルを更新しました。試してみてください。 – Brandon
もう一度、元の質問に回答を書いたが、コメントボックスでは適切な書式設定ができなかった。 – Dan