【问题标题】:How to send new form fields with data from Django views.py?如何使用来自 Django views.py 的数据发送新的表单字段?
【发布时间】:2021-10-20 12:43:44
【问题描述】:

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

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

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

【问题讨论】:

  • 你应该在任何地方使用user,而不是user_id。 “_id”后缀用于访问ForeignKey的原始值,通常是相关对象的id,但你很少需要访问这个

标签: django django-models django-views django-forms field


【解决方案1】:

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

if form.is_valid():
    form.instance.user = request.user
    form.instance.email = request.user.email
    order = form.save()

【讨论】:

    猜你喜欢
    • 2015-05-27
    • 1970-01-01
    • 2021-10-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-22
    相关资源
    最近更新 更多