Ответ 1
Вы можете добавить пользовательские атрибуты в свои поля в определении формы Meta с помощью виджетов.
class SomeForm(forms.ModelForm):
class Meta:
model = SomeModel
widgets = {'field_name1': forms.Textarea(attrs={'data-bind':'value: field1'}),
'field_name2': forms.TextInput(attrs={'data-bind':'value: field2'})}
Например, будет показано первое поле:
<textarea id="id_field_name1" name="field_name1" data-bind="value: field1"></textarea>
Update: в качестве бонуса здесь есть простой способ изменить атрибут для каждого поля в форме, например, если все они нуждаются в определенном классе (полезен для других js-аддонов или стилей CSS)
def __init__(self, *args, **kwargs):
super(SomeForm, self).__init__(*args, **kwargs)
for name, field in self.fields.items():
field.widget.attrs['class'] = 'some_form_field'
# this could be used in your case if the Django field name is the
# same as the KO.js field name
field.widget.attrs['data-bind'] = 'value: %s' % name