Django 以一种形式在一个模型表中编辑多个对象。德扬戈

Django 以一种形式在一个模型表中编辑多个对象。德扬戈,django,forms,Django,Forms,我有一个非常简单的表单来编辑表中的一个字段,它看起来像这样 class TimeEditForm(forms.ModelForm): class Meta: model = Time fields = ('free_or_no',) 现在我想创建一个视图,在该视图中,一个表中有许多对象,并且可以在一个位置编辑所有查询集。如何将多个对象传输到单元版? 我在论坛上寻找答案,但他们主要是指通过一个表格编辑多个模型,而不是在一个表格中编辑多个对象 任何帮助都将不

我有一个非常简单的表单来编辑表中的一个字段,它看起来像这样

class TimeEditForm(forms.ModelForm):
    class Meta:
        model = Time
        fields = ('free_or_no',)
现在我想创建一个视图,在该视图中,一个表中有许多对象,并且可以在一个位置编辑所有查询集。如何将多个对象传输到单元版? 我在论坛上寻找答案,但他们主要是指通过一个表格编辑多个模型,而不是在一个表格中编辑多个对象

任何帮助都将不胜感激

My models.py

class Time(models.Model):
    day_time = models.ForeignKey(DayTime, on_delete=models.CASCADE)
    compartment = models.CharField(max_length=11)
    free_or_no = models.BooleanField(default=True)
def time_edit(request):
    time = get_object_or_404(Time, pk=pk) # how to replace it correctly in the query set collections, what can I use? like this Time.objects.all()[:12]
    if request.method == "POST":
        form = TimeEditForm(request.POST, instance=time)
        if form.is_valid():
            time = form.save(commit=False)
            time.save()
            return redirect('account')
    else:
        form = TimeEditForm(instance=time)
    return render(request, 'time_edit.html', {'form': form})
视图.py

class Time(models.Model):
    day_time = models.ForeignKey(DayTime, on_delete=models.CASCADE)
    compartment = models.CharField(max_length=11)
    free_or_no = models.BooleanField(default=True)
def time_edit(request):
    time = get_object_or_404(Time, pk=pk) # how to replace it correctly in the query set collections, what can I use? like this Time.objects.all()[:12]
    if request.method == "POST":
        form = TimeEditForm(request.POST, instance=time)
        if form.is_valid():
            time = form.save(commit=False)
            time.save()
            return redirect('account')
    else:
        form = TimeEditForm(instance=time)
    return render(request, 'time_edit.html', {'form': form})

这是在一个表单中编辑多个对象的全部代码

test = Time.objects.filter(day_time__day_name='Monday')
TimeFormSet = modelformset_factory(Time, fields=('free_or_no',))
if request.method == "POST":
    formset = TimeFormSet(
        request.POST,
        queryset=Time.objects.filter(day_time__day_name='Monday'),
    )
    if formset.is_valid():
        formset.save()
        return HttpResponseRedirect(reverse('app:account'))
else:
    formset = TimeFormSet(queryset=Time.objects.filter(day_time__day_name='Monday'))

您正在寻找modelformsets,这太棒了!