Как отправить новые поля формы с данными из Django views.py?

Я добавляю новое поле с именем "user" в модель "order". Я сделал миграции. (Бонусный вопрос: почему в sql3db колонка "user_id", а не "user"? Но ладно, меняю form.fields['user'] на form.fields['user_id'], как хочет машина...)

Я удаляю ненужные поля из формы в forms.py, и пытаюсь добавить эти поля в views.py (потому что я не знаю, как отправить "пользователя" в forms.py, и я думаю, что так безопаснее).

Как я могу понять - мои новые поля отсутствуют для "order", когда я использую form.save(). Это поле не может быть нулевым по дизайну.

screenshot

В вашей форме нет поля user, поэтому это не сработает. Что вы можете сделать, так это изменить объект, обернутый в форму с помощью:

if form.is_valid():
    form.instance.user = request.user
    form.instance.email = request.user.email
    order = form.save()
Вернуться на верх