【问题标题】:django formset, for each form a different data than a selectdjango formset,对于每个表单,与选择不同的数据
【发布时间】:2022-11-05 21:31:32
【问题描述】:

我有一个表单集,我希望选择中的第一个数据已经在每个表单集中都被选中,在我的情况下,我有两个数据,所以在第一个表单集中会有第一个数据,在第二个中会有第二个数据,如果可能的话我想以文本形式显示它们,而不是通过选择或在任何情况下都没有输入来修改它们。

视图.py

def crea_gruppi(request):
    tot_gruppi = Gruppo.objects.all()
    gruppiFormSet = formset_factory(GruppiForm, extra = tot_gruppi.count())
    # POST
    if request.method == 'POST':
        gruppi_formset = gruppiFormSet(request.POST, prefix='gruppi')
    # GET
    else:
        gruppi_formset = gruppiFormSet(prefix='gruppi')
    context = {
        'gruppi_formset': gruppi_formset, 
        'tot_gruppi': tot_gruppi
    }
    return render(request, 'crea_gruppi.html', context)

html

<section class="mt-5">
    <div class="container">
        <div class="d-flex align-items-center justify-content-between">
            <h2 class="m-0 text-light">crea gruppi</h2>
        </div>
        <hr class="bg-light">
        <form method="post" autocomplete="off"> 
            {% csrf_token %}
            {{ gruppi_formset.management_form }}
            <div class="raccoglitore-gruppi">
                {% for gruppo in gruppi_formset %} 
                    <div class="gruppo mb-3" style="border: 2px solid red; padding: 20px; border-radius: 5px;">
                        <div style="color: #fff;">
                            <h6 class="m-0">test</h6>
                            <hr>
                            {{ gruppo.dati_gruppo|add_class:"form-control" }}
                            <hr>
                            {{ gruppo.giorni_settimana }}
                        </div>
                    </div>
                {% endfor %}
            </div>
            <div class="text-end">
                <input type="submit" class="btn btn-warning" value="salva">
            </div>
        </form>
    </div>
</section>

形式

class GruppiForm(forms.ModelForm):

    class Meta:
        model = models.DatiGruppi
        exclude = ['gruppi_scheda']

【问题讨论】:

    标签: django django-views django-forms django-templates formset


    【解决方案1】:

    您可以使用 formset initial 属性,在此处找到有关它的文档:Using initial data with a formset

    对于您的GET 请求,它可能看起来像这样:gruppi_formset = gruppiFormSet(prefix='gruppi', initial=[{'your_model_field_name': 'petto'}])

    【讨论】:

      猜你喜欢
      • 2021-10-10
      • 2021-11-05
      • 2013-05-04
      • 2019-04-15
      • 2017-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-23
      相关资源
      最近更新 更多