Издание множества объектов в одной модельной таблице в одной форме.Джанго - PullRequest
0 голосов
/ 15 февраля 2019

У меня есть очень простая форма для редактирования одного поля в таблице, это выглядит следующим образом.

class TimeEditForm(forms.ModelForm):
    class Meta:
        model = Time
        fields = ('free_or_no',)

Теперь я хотел бы создать представление, в котором у меня есть много объектов из одной таблицы и всемоего набора запросов можно редактировать в одном месте.Как я могу перенести много объектов в редакцию?Я искал ответы на форуме, но они в основном относятся к редактированию многих моделей по одной форме, а не многих объектов в одной таблице.

Любая помощь будет оценена.

Мои 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)

views.py

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})

1 Ответ

0 голосов
/ 15 февраля 2019

Это весь код, редактирующий множество объектов в одной форме.

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'))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...