如何从 Django views.py 发送带有数据的新表单字段?

How to send new form fields with data from Django views.py?

我正在向“订单”模型添加一个名为“用户”的新字段。我确实进行了迁移。 (额外的问题是:为什么在 sql3db 列中创建了“user_id”,而不是“user”?但是好吧,我将 form.fields['user'] 更改为 form.fields[ 'user_id'],如机器所愿...)

我从 forms.py 中的表单中删除了不需要的字段,并尝试在 views.py 中添加这些字段(因为我不知道如何将“用户”发送到 forms.py,我认为这样更安全)。

据我所知 - 当我使用 form.save() 时,“订单”的新字段不存在。 根据设计,此字段不能为空。

您的表单没有 user 字段,因此这将不起作用。你可以做的是改变包裹在表格中的对象:

if form.is_valid():
    form<strong>.instance.user = request.user</strong>
    form<strong>.instance.email = request.user.email</strong>
    order = form.save()