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,这太棒了!