Какая польза от cleaned_data в Django - PullRequest
0 голосов
/ 03 декабря 2018

Джанго говорит, что form.is_valid() равно True.form.cleaned_data - это место, где хранятся все проверенные поля.Но я запутался в использовании функции cleaned_data.

form.cleaned_data['f1'] - очищенные данные request.POST.get('f1') - не подтвержденные данные

У меня есть форма модели в Django.

if form1.is_valid():
    form1.save()

Сохраняет ли это cleaned_data в модели или сохраняет непроверенные данные.

form2=form1.save(commit=False);

Содержит ли form2 чистые_данные form1 или непроверенные данные.

Помимо преобразованияЛюбая дата в Python объект DateTime является хорошим примером использования cleaned_data по сравнению с непроверенными данными.Спасибо

1 Ответ

0 голосов
/ 03 декабря 2018

Существует 2 ситуации: использование базовых форм (forms.Form) и ModelForm (forms.ModelForm).

Если вы используете ModelForm, вам не нужно играть со словарем cleaned_data, потому что когда вы делаете form.save(), он уже сопоставляется и чистые данные сохраняются.Но вы используете базовую форму, тогда вам нужно вручную сопоставить каждый cleaned_data с местом в базе данных, а затем сохранить экземпляр в базе данных, а не в форме.

Например, базовая форма :

if form.is_valid():
    ex = Example()
    ex.username = form.cleaned_data['username']
    ex.save()

Например, ModelForm :

if form.is_valid():
    form.save()

ПРИМЕЧАНИЕ: Если форма переходит со стадии is_valid(), то нет никаких неподтвержденныхданные.

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