gpt4 book ai didi

django - 使用带有 django 表单的knockout.js?

转载 作者:行者123 更新时间:2023-12-03 21:48:17 25 4
gpt4 key购买 nike

我希望在我的客户端代码中添加一些结构,并且一直在阅读有关 knockout.js 的信息。 .我一直在阅读文档并有一个简单的问题要问 - 因为 knockout 要求用户添加 data-bind html 元素的属性,它与 django 一起工作的最佳方式是什么?表格,因为目前我正在使用 {{ form.as_p }}
我很好奇我应该如何以及在哪里形成对 view model 的输入(如果它在 Django 的表单字段中,或者没收 {{ form.as_p }} 并在 html 中输入。

最佳答案

您可以使用小部件向表单的元定义中的字段添加自定义属性。

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>

更新:
作为奖励,这里有一种简单的方法来更改表单中每个字段的属性,例如,如果它们都需要特定的类(对其他 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

关于django - 使用带有 django 表单的knockout.js?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10403094/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com