假设我有一张这样的表格:

forms.py

class CreateASomethingForm(ModelForm):
    class Meta:
        model = Something
        fields = ['field2', 'field3', 'field4']

我希望表单包含这三个字段.然而,我的Something班也有field1班.我的问题是——如果我不使用ModelForm来收集数据,我如何向field1添加数据.我try 过这样做,但不起作用,我不确定如何正确解决这个问题:

views.py

def create_something_view(request):
    if (request.method == 'POST'):
        # Create an object of the form based on POST data
        obj = CreateASomething(request.POST)
        # ** Add data into the blank field1 ** (Throwing an error)
        obj['field1'] = request.user
        # ... validate, save, then redirect 

我收到的错误是:

TypeError: 'CreateAClassForm' object does not support item assignment

在Django中,在保存之前将数据分配给ModelForm对象的正确方式是什么?

推荐答案

form = CreateASomething(request.POST)
if form.is_valid():
    obj = form.save(commit=False)
    obj.field1 = request.user
    obj.save()

Django相关问答推荐

如何在Django模型mixin字段定义中引用模型名称?

DRF中是否有有效的更新有序数据的算法?

Django:我的上下文变量不能用于重复的for循环

Django没有';t显示黄页

如何在Django CMS中更新上下文

如何显示;Django认证系统;在模板中?

Django-admin 显示decorator 按多列排序

django 无法识别实现自定义后端

自定义身份验证 django

有什么方法可以自动设置 Debug True Django application

恢复 Django 1.7 RemoveField 迁移

变量为无时默认模板标签输出的Django设置?

用于测试文件下载的 Django 单元测试

重命名 django 元素的简单方法

Django:获取上次用户访问日期

如何从 django 的 db 模型中获取字段类型字符串

在 Django 中的字段中添加额外的约束

使用 request.user 的 Django 和中间件始终是匿名的

如何动态访问 Django 模型字段详细名称?

Django - 指定 Django 管理员应该使用哪个模型管理器