#django #django-models #django-views #django-forms #field
Вопрос:
Я добавляю новое поле с именем «пользователь» в модель «заказ». Я действительно совершал миграции. (Бонусный вопрос: почему в столбце sql3db был сделан «идентификатор пользователя» вместо «пользователь»? Но хорошо, я меняю form.fields[‘пользователь’] на form.fields[‘идентификатор пользователя’], как хочет машина…)
Я удаляю ненужные поля из формы в forms.py, и я пытаюсь добавить эти поля в views.py (потому что я не знаю, как отправить «пользователя» в forms.py, и я думаю, что это более безопасно, как это).
И, как я могу понять, мои новые поля отсутствуют для «заказа», когда я использую form.save(). Это поле не может быть пустым по замыслу.
Комментарии:
1. Вы должны использовать
user
везде, а неuser_id
. Суффикс «_id» используется для доступа к исходному значению внешнего ключа, обычно идентификатору связанного объекта, но вам редко требуется доступ к этому
Ответ №1:
У вашей формы нет user
поля, следовательно, это не будет работать. Что вы можете сделать, так это изменить объект, завернутый в форму, с помощью:
if form.is_valid():
form.instance.user = request.user
form.instance.email = request.user.email
order = form.save()