Django ModelForm最初不适用于textarea

时间:2019-04-15 21:33:45

标签: python django django-models django-forms

我有一个django ModelForm,我试图用我的视图中的initial值填充它,除textarea字段外的所有字段都已填充。我不知道为什么。任何帮助表示赞赏。谢谢!

views.py

name = 'Testing123'
private = True
notes = 'JUST CHECKING'
ctx['header_form'] = NewTemplateForm(initial={'name': name, 'private': private,'notes:': notes})
  • private是一个BooleanField,即使如此也可以初始使用
  • name已填充
  • notes是唯一未填充的字段。

template.html 我正在渲染这样的表单:

{% load widget_tweaks %}
    <div class="form-group">
        <div class="row" style="margin-bottom: 15px">
            <div class="col-lg-6">
                <label>{{form.name.label}}</label>
                {% render_field form.name class="form-control" required="true" %}
            </div>

            <div class="col-lg-6" style="margin-top: 23px">
                <div class="i-checks"><label> {% render_field form.private type="checkbox" %} <i></i> Make this Template Private </label></div>
            </div>

        </div>
    </div>

    <div class="row" style="margin-bottom: 15px">
        <div class="col-lg-12">
            <label data-error="wrong" data-success="right" for="id_notes">{{form.notes.label}}</label>
            {% render_field form.notes class="form-control" %}
        </div>
    </div>

forms.py

class NewTemplateForm(ModelForm):
    class Meta:
        model = SalesTemplate
        fields = {'name', 'notes', 'private'}

    def __init__(self, *args, **kwargs):
        super(NewTemplateForm, self).__init__(*args, **kwargs)
        self.fields['notes'].widget = forms.Textarea(attrs={'class': 'md-textarea', 'style': 'height: 75px'})

1 个答案:

答案 0 :(得分:0)

因为您的代码中有错别字,并且您将'notes:'作为密钥而不是此行中的'notes'

ctx['header_form'] = NewTemplateForm(initial={'name': name, 'private': private,
'notes:': notes})  # HERE!