Встроенный объект Formset не повторяется - PullRequest
0 голосов
/ 18 февраля 2011

Моя конечная цель - сохранить формы модели действий для данного веб-сайта (внешний ключ). После проверки формы я хочу суммировать баллы для всех отдельных действий и подтвердить, что она ниже определенного порога (100 баллов), прежде чем сохранить действия. Если общее количество превысит 100, я вызову ошибку ValidationError.

Моя проблема в том, что я получаю следующее сообщение об ошибке:

"Объект 'ActionFormFormSet' не повторяется"

Экземпляры существуют, поэтому проблема, похоже, заключается в переборе этого конкретного объекта. В официальной документации есть пример, который перебирает набор форм модели именно таким образом. Тем не менее, набор параметров модели заполняется набором запросов, тогда как набор параметров inlineform не заполняется явно (возможно, неявно, я не знаю).

Могу ли я просто не повторять этот объект? Что мне здесь делать?

Спасибо

 ActionFormSet=inlineformset_factory(Website, Action, extra=1, can_delete=True)
 if request.method=='POST':
     action_formset=ActionFormSet(request.POST, instance=website,prefix="actions")
     if action_formset.is_valid():

        #After validating the surveys, I need to make sure total points<100
        for form in action_formset:
            pass
        action_formset.save()

Ответы [ 2 ]

2 голосов
/ 15 апреля 2011

Возможно, вы используете старую версию django. Я полагаю, что наборы форм повторяются только в версии 1.3+. Это может сработать:

for form in action_formset.forms:
    pass
action_formset.save()
0 голосов
/ 20 февраля 2011

Сначала сохраните набор форм, затем итерируйте объекты

forms = action_formset.save( commit = False)

теперь перебираем формы:

for form in forms:
    # do something
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...