Pat*_*sut 1 django django-forms
我认为开始使用模型表单而不是常规表单会更容易(放弃modelform提供的所有简单的东西).但是当我尝试这样做时:
>>> m = Model.objects.get(pk=1)
>>> f = ModelForm(instance=m)
>>> f.is_valid()
False
>>> f.save()
AttributeError: 'ModelForm' objects has no attribute 'cleaned_data'
Run Code Online (Sandbox Code Playgroud)
我认为django 文档说错了:
ModelForm生成的每个表单都有一个save()方法.此方法根据绑定到表单的数据创建并保存数据库对象.ModelForm的子类可以接受现有的模型实例作为关键字参数实例; 如果提供了这个,save()将更新该实例.如果未提供,save()将创建指定模型的新实例
因为这对我不起作用.
我认为django文档错了吗?
提前致谢.
您可能忘记根据用户的request.POST数据将"数据"添加到ModelForm实例化中.
f = ModelForm(data=request.POST, instance=m)
f.is_valid() # is True if the data is ok.
Run Code Online (Sandbox Code Playgroud)
在任何情况下,最好发布您的相关代码:模型类,模型表单类和视图.
编辑:如果你想工作,你必须添加一个data=参数(或第一个参数,如果你没有命名)到ModelForm初始化is_valid().is_valid在这里根据各种验证规则检查给定的数据,并且只有在没有问题的情况下,才能保存ModelForm.使用命名参数初始化ModelFormjust instance=不会触发任何验证,因为没有新的验证.
| 归档时间: |
|
| 查看次数: |
302 次 |
| 最近记录: |