Получить порядок форм в наборе форм автоматически, учитывая, что пользователь может перепрыгнуть через порядок по умолчанию или удалить / удалить прошлые формы - PullRequest
0 голосов
/ 29 марта 2019

Я использую набор форм в форме, добавляя его в качестве атрибута формы:

 self.whitepaper = WhitePaperFormSet(
            instance=self.instance, 
            prefix=WHITEPAPER_TR,
            data=self.data if self.is_bound else None,
            files=self.files if self.is_bound else None,
            auto_id=False)

Мне нужно получить / установить и упорядочить форму в наборах форм.Я знаю, что Django использует id / index, can_order, но бывают ситуации:

  1. Нет заполненных форм, пользователь заполняет формы № 1 и № 4 (из 4)
  2. Формы 1 и 3 уже заполнены, пользователь удаляет / очищает форму 1, завершает 2 и 4, поэтому теперь у меня есть данные в 2,3 и 4

Будучи документами, can_order не виден

Так что индекс сам по себе не помогает.

Так что мне нужно как-то проверить, что завершено, что было удалено и номер

1 Ответ

0 голосов
/ 29 марта 2019

Каждый раз, когда вы используете цикл, он всегда начинается с первого и проходит через порядок.

Если вы хотите игнорировать formset.is_valid() и позволить каждому form обрабатывать себя:

my_formset = MyFormSet()
for form in my_formset:
    if form.is_valid()
        if form.has_changed()

Однако вам придется вручную удалить удаленные формы, которые я сейчас не могу вспомнить.Если вас больше всего волнует order всего, я бы порекомендовал вам настроить queries для этого, либо в Model, либо в formset queryset.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...