Получить данные POST из сложной формы Django? - PullRequest
0 голосов
/ 15 июля 2009

У меня есть форма Django, которая использует другое количество полей в зависимости от года / месяца. Поэтому я создаю поля в форме, как это:

for entry in entry_list:
    self.fields[entry] = forms.DecimalField([stuffhere])

но сейчас я не знаю, как получить отправленные данные из формы.

Обычно я бы делал что-то вроде:

form.cleaned_data["fieldname"]

но я не знаю, как называются поля. Экран отладки показывает мои данные POST как просто «Объект ввода» со значением «u». Вызов POST.lists () ничего не показывает.

Я уверен, что упускаю что-то очевидное, но я застрял в этом на несколько дней слишком много. Есть лучший способ сделать это? Все ли данные в объекте запроса, но я просто не знаю, как их использовать?

Вот код для модели / формы / вида: http://pastebin.com/f28d92c0e

Большое спасибо!

EDIT:

Я опробовал оба предложения ниже. Использовать формы было определенно проще и приятнее.

Ответы [ 2 ]

5 голосов
/ 15 июля 2009

Я думаю, вам лучше использовать formsets здесь. Они предназначены именно для того, что вы пытаетесь сделать - для работы с переменным количеством элементов в форме.

0 голосов
/ 15 июля 2009

В этой строке:

self.fields [entry] = forms.DecimalField (max_digits = 4, decimal_places = 1, label = nice_label)

запись является экземпляром модели. Но поля имеют ключевые имена (строки). Попробуйте что-то вроде:

self.fields [entry.entry_name] = forms.Decimal (...)

(заменить соответствующим "entry_name").

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