使用Django表单编辑行

红色的

我想使用Django表单在Django 1.9中编辑一行:

所以我所做的是

对于get请求,我初始化了表单实例(views.py)

def get(self, request):
    myModel = model.myModel.objects.get(user=request.user)
    form_instance = MyForm(initial=myModel.__dict__)
    return render(request, 'mytemplate.html', {'form': form_instance} )

def post(self, request):
    form_instance = MyForm(request.POST)
    if form_instance.is_valid():
        form_instance.save()
        return redirect('..')
    return render(request, 'mytemplate.html', {'form': form_instance} )

这是我的模型

class MyModel(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    Booth = models.OneToOneField(BoothLocation)
class BoothLocation(models.Model):
    LocationID = models.CharField(max_length = 25)

我有一个forms.py

class MyForm(forms.ModelForm):
    class Meta:
        model = MyModel
        fields = ('Booth')
        labels = {'Booth':_('Booth Chosen')}

我的问题是我的模型有一对一的字段,因此无论何时执行

form_instance = MyForm(request.POST)

它将返回一个错误,指出onetoonefield必须是唯一的,但我只是在更新它。有没有方法可以覆盖此验证?

顺便说一句,该领域确实需要一对一。

e4c5

做错了

form_instance = MyForm(initial=myModel.__dict__)

它应该是

form_instance = MyForm(instance=myModel)

糟糕,忘记添加,为了处理表单验证失败的情况,您的后开会者可能需要这样的东西:

form_instance = MyForm(request.POST, instance=myModel)

您将需要再次获取该实例。附带一提,可以通过将两个函数合并为一个函数并在其中添加其他代码来极大地简化代码

if request.method == 'POST':

else:

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Django Bootstrap表单编辑Django表单

来自分类Dev

如何使用基于Django的modelForm编辑表单

来自分类Dev

如何在Django中使用模型表单编辑对象?

来自分类Dev

使用 Django 表单编辑用户配置文件

来自分类Dev

在Django 1.6中编辑表单

来自分类Dev

使用已填充同一行的 html 表单编辑 SQL 行

来自分类Dev

编辑Django表单小部件渲染

来自分类Dev

Django编辑表单未显示附件链接

来自分类Dev

Django 编辑本机注册表单

来自分类Dev

Django 编辑按钮重定向以创建表单

来自分类Dev

django,使用唯一字段编辑表单,form.is_valid返回false

来自分类Dev

Django使用编辑表单作为添加用户给出错误

来自分类Dev

如何在免费jqgrid中的表单和行编辑中使用本机日期选择器

来自分类Dev

使用Microsoft表单在线编辑Excel中的现有行

来自分类Dev

使用ajax用php编辑html表单

来自分类Dev

使用angular,javascript编辑和删除表单

来自分类Dev

从HTML表单使用PHP编辑SQL表

来自分类Dev

使用jquery-confirm编辑表单

来自分类Dev

使用grep查找和编辑正确的表单

来自分类Dev

编辑表单不获取使用的值

来自分类Dev

使用Acrobat编辑表单时缺少字体

来自分类Dev

使用 GemBox.Document 编辑表单控件

来自分类Dev

无法在 ReactJS 上使用 defaultValue 编辑表单

来自分类Dev

使用编辑时让我的表单自动填充

来自分类Dev

在Django中使用表单

来自分类Dev

Django编辑行而不是添加新行

来自分类Dev

使用 PHP 在新页面中使用 HTML 表单编辑填充了 MySQL 数据库的 HTML 表行

来自分类Dev

如何显示Django表单中的不可编辑字段

来自分类Dev

在Django管理表单中显示创建和编辑的字段

Related 相关文章

热门标签

归档