(Джанго) Отображение нескольких сгенерированных форм (неизвестное количество) в представлении и получение их результатов? - PullRequest
0 голосов
/ 23 октября 2019

В настоящее время я пытаюсь отобразить набор сгенерированных форм в представлении. Например, возьмем следующий вид (как часть класса TemplateView):

def get(self, request, id):
    df = create_dataframe(User.objects.get(user=request.user.username))
    context = generate_context_forms(df=df, user=request.user.username)

    return authentication_check(
         request=request, template_name=self.template_name, context=context
    )

По сути, функция create_dataframe генерирует некоторые релевантные вычисления, используя некоторые введенные пользователем данные, и эти данныеобозначает, сколько форм я буду генерировать для пользователя. Функция generate_context_forms использует это DataFrame для генерации контекста для пользователя. authentication_check - это базовая функция, которая действует как render, но с некоторыми дополнительными функциями. Как правило, context будет выглядеть так:

context = {
    'general': GeneralForm,
    'specific1': SpecificForm,
    'specific2': SpecificForm,
    ...
}

К n суммам SpecificForm. То, что я пытаюсь сделать, это показать все конкретные формы пользователю, не вызывая потери контроля. Все формы будут отправлены с помощью одной кнопки «отправить», и после отправки я должен собрать все данные, которые они представили индивидуально. С учетом вышеприведенного контекста я не знаю, как бы перебирать все формы specific в контексте.

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

context = {
    'general': GeneralForm,
    'specific': [SpecificForm, SpecificForm, ...],
}

Но кажется, что когда я перебираю их в моем представлении:

{% for form in specific %}
  <div class="ui fluid card">
    <div class="content">
      <a class="header">{{ form.instance.prompt }}</a>
    </div>
    <div class="extra content">
      {{ form|crispy }}
    </div>
  </div>
{% endfor %}

В итоге происходит то, что радио-кнопка каждой сгенерированной формы взаимодействует с другой. Другими словами, во всей «определенной форме» есть выбор из Yes/No переключателей для вопроса, но кажется, что все эти переключатели не выбирают друг друга (независимо от формы). Это также решение, в котором я не уверен, как извлекать пользовательские данные из потом.

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

1 Ответ

0 голосов
/ 23 октября 2019

Возможно, вы могли бы попытаться реализовать решение, используя formsets или model-formsets для вашей 'SpecificForm'?

...