使用带有Formsets的modelForm隐藏字段而不使用Crispyform。

时间:2014-03-10 13:58:08

标签: django forms django-forms

我正在使用表单集,我想知道如何使用

<input type='hidden'

在表单集内。 (Django formsets允许我们使用单个表单的多个表单实例)

使用type='hidden'和name ='fieldname'这样的字段可以很容易地使用普通的单一形式。

<input type='hidden' name='user' value='{{request.user.id}}'>

处理formsets有点吸引人,如何使用表单集实现相同的行为?

Views.py

PictureFormSet = modelformset_factory(Picture, form=UpdatePictureForm, extra=0)
    formset_qset = Picture.objects.filter(id__in=[15, 16, 17, 18, 19, 20])
    if request.method == POST:
        ctx['form_set'] = PictureFormSet(request.POST, queryset=formset_qset)
        ctx['form_set'].save()

    ctx['form_set'] = PictureFormSet(queryset=formset_qset)

    return render_to_response('temp tabs.html', context_instance=RequestContext(request, ctx))

模板

 <form method="POST" action="" class="form-horizontal">

                {% for form in form_set %}
                    {{form.id}}
                    <div class="form-group">
                        <label class="col-lg-2 control-label">
                            {% with form.meta_data.value|load_meta_data as meta %}
                                <div class="portfolio-item video-container">
                                    <a class="" href="{% url 'view_image' form.id.value %}?in=pro">
                                        <i style="background-image: url({{ meta.image_size.thumbnail_small }});"
                                           class="ds-thumbnail-container"></i>
                                    </a>
                                </div>
                            {% endwith %}
                        </label>

                        <div class="col-lg-8 ">

                            {{ form.name }}



                        </div>
                    </div>

                {% endfor %}
                {{ form_set.management_form }}

            {% csrf_token %}
            <input type="submit" value="Submit">
            </form>

说明

在此代码中,我们从数据库渲染图像以编辑名称。我们在meta_data内有网址信息,因此我们选择了

fields=['id', 'meta_data', 'name']

我们想要更改/更新名称,而不是meta_data

这段代码大部分工作正常,但是我想如何保持模态的一个字段不变?

我在模板中使用meta_data字段,但我不希望修改该字段,该值应采用如下形式

{{form.meta_data}} 这将它变成文本区域,具有不同的名称和ID。它预计会发生变化。但我想声明一个隐藏字段并将其值设置为form.meta_data.value

如果您对此有任何疑问,请随时提出。 谢谢。

0 个答案:

没有答案