背景简化如下:
Model 部分:Model 名为 Task,Task 中有一个 name 字段,该字段唯一 unique=True,
Form 部分:根据 Task 的 Model,构造了一个 ModelForm TaskForm
View 部分,使用 CreateView,UpdateView 对此 Task 进行增加,修改。
问题:在 UpdateView 中,因为要对前端传过来的数值进行一些加工后保存,所以重写了 form_valid 方法。在该方法中,使用 task = form.save(commit=False) 的时候,会直接触发 name 字段的唯一性验证。直接就报错跳出了。
另外一个问题。假如我去掉 unique 验证,此时 task = form.save(commit=False)获取的 task,是不包含 id 的。我选择 save 操作,数据库里会多出一条数据。而不是在之前记录上修改的。 这里如何处理?还是需要手动指定 ID?
django 新手。求指教。多谢。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.