Django, сохранить данные из формы без необходимости вручную устанавливать каждое поле для сохранения? - PullRequest
2 голосов
/ 07 сентября 2010

Кажется, я не могу найти хороший способ сделать это,

У меня есть куча полей для ввода формы, и вместо того, чтобы делать, как показано ниже, я должен напечатать каждое имя поля = ""и так, есть ли способ закодировать это так, чтобы оно автоматически сохраняло каждое поле из формы?

b = Modelname(fieldname=request.POST['fieldname'])
b.save()

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

1 Ответ

3 голосов
/ 07 сентября 2010

Конечно, request.POST.items() и request.POST.iteritems() работают так же, как методы с тем же именем в dict, возвращая соотв.список и итератор всех пар (name, value) (кортеж из 2 предметов) в этом объекте, похожем на dict.Если для имени есть несколько значений, это даст вам только последнее;если вы хотите все из них, используйте request.POST.iterlists(), который в слоте value каждой пары имеет список всех значений для полей с таким именем.например, что вас не волнуют дубликаты или вы знаете, что их нет, даже короткий фрагмент:

for name, value in request.POST.iteritems():
    ModelName(**dict( [ (name, value) ] )).save()

может оказаться достаточным, хотя может быть лучше добавить проверку проверки имени /пара значений перед сохранением таким образом; -).

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