Я изначально написал код для динамического создания формы на основе данных из БД, аналогично тому, что я описал в своем previous SO post.Создание динамического набора форм
Как пользователь Даниил Роземан указывает, что он использовал бы форму для этого, и теперь я пришел к осознанию того, что он должен быть совершенно прав. :)
Мой подход работает, в основном, но я не могу заставить валидацию по всей форме работать должным образом (я считаю, что это возможно, но она становится довольно сложной, и должен быть более разумный способ do => Formsets!).
Итак, теперь мой вопрос: как я могу построить динамический набор форм? Не для AJAX, я хочу, чтобы метка каждой формы была заполнена значением FK (командой) из БД.
Как мне нужно передать параметры в форму, я использовал this technique из предыдущего сообщения SO.
С первого подхода, на мой взгляд код (код в предыдущей ссылке):
def render_form(request):
teams = Team.objects.filter(game=game)
form_collection = []
for team in teams:
f = SuggestionForm(request.POST or None, team=team, user=request.user)
form_collection.append(f)
Теперь я хочу сделать что-то вроде:
def render_form(request):
teams = Team.objects.filter(game=game)
from django.utils.functional import curry
from django.forms.formsets import formset_factory
formset = formset_factory(SuggestionForm)
for team in teams:
formset.form.append(staticmethod(curry(SuggestionForm, request.POST or None, team=team, user=request.user)))
Но немного Append не Работа. Каков правильный способ сделать это?
Спасибо!
Спасибо, и вам все же нравится :). Теперь я получаю одну форму с выпадающим списком для команд. Я хочу, чтобы каждая команда была ярлыком в форме и использовала радиокнопки для выбора. Это означает, что если у меня 8 команд, отображается список (или строка ...) с 8 элементами. Вот почему я хотел сделать «добавление» форм. Это возможно? – vorpyg
+1 для «неизменяемости правоты ...». – cethegeek
Отлично! Огромное спасибо. – vorpyg