将Django表单元素绑定到AngularJS ng-model

时间:2013-11-07 11:04:25

标签: django angularjs

通常,当我使用Django的Form API显示模型表单时,我会通过formdjango.template.Context对象传递给模板,并使用Django的模板语言渲染其字段:

<form role="form" method="post">
    {% csrf_token %}           
    {{ form.non_field_errors }}
    <div class="form-group">
        <label for="id_content">Content</label>
        {{ form.content }}
    </div>
    <button type="submit" class="btn btn-default">Submit</button>
</form>

form.content将呈现为

<textarea id="id_content" rows="10" cols="40" name="content" style="margin: 2px; width: 339px; height: 164px;"></textarea>

但现在我想将它与AngularJS一起使用,即将输入字段绑定到ng-model

<textarea ng-model="content" id="id_content" rows="10" cols="40" name="content" style="margin: 2px; width: 339px; height: 164px;"></textarea>

无论如何要实现这个目标吗?

1 个答案:

答案 0 :(得分:2)

一种方法是覆盖表单init方法并更新小部件属性:

class MyForm(forms.ModelForm):
    # fields..

    def __init__(self, *args, **kwargs):
        super(MyForm, self).__init__(*args, **kwargs)
        self.fields['content'].widget.attrs.update({'ng-model': 'content'})