如何使用外键保存多个Django表格



我知道这个问题以前已经问过,我应用了建议的解决方案,但我的代码仍无法正常工作。我正在尝试保存三种形式,其中一种模型具有其他两个模型。我首先尝试commit=false,然后保存,但仍然得到IntegrityError。以下是追溯的详细信息:

file" c: user user user appdata local program python python python37-32 lib lib site-packages django django db db db backends backends litils.pys.py 85.返回self.cursor.execute(sql,params(

上述异常(" poi_id"列中的null值违反了非悬补约束 详细信息:失败行包含(14,某些字符串,2019-05-01,媒体/live-oak-tree-450w_iwbyljs.jpg,null,null(。 (是以下例外的直接原因:

file" c: user user user appdata local program python python python37-32 lib lib site-packages django core core handlers handlers excress excret.py 34.响应= get_response(请求(

file" c: user user user appdata local program python python python37-32 lib lib site-packages django core core handlers handlers base.py" 126.响应= self.process_exception_by_middleware(E,请求(

file" c: user user user appdata local program python python python37-32 lib lib site-packages django core core handlers handlers base.py" 124.响应= wrapped_callback(请求, *callback_args,** callback_kwargs(

file" c: testbiodjango toxtcoll polls polls views.py" 52. obs.species = temp_form.save((

file" c: user user user appdata local program python python python37-32 lib lib site-packages django django forms models.py in Save" 458. self.instance.save((

file" c: user user user appdata local program python python python37-32 lib lib site-packages django django db db db base.py base.py"在保存中 718. force_update = force_update,update_fields = update_fields(

file" c: user user user appData local program python python python37-32 lib lib site-packages django django db db db base.py base.py" 748.更新= self._save_table(raw,cls,force_insert,force_update,use,update_fields(

(

file" c: user user user appdata local program python python python37-32 lib lib site-packages django django db db db db dbsode base.py base.py" 831.结果= self._do_insert(cls._base_manager,使用,字段,update_pk,RAW(

file" c: user user user appdata local program python python python37-32 lib lib site-packages django django db db db db base.py base.py" in _do_insert中 869.使用=使用,raw = raw(

file" c: user user user appdata local program python python python37-32 lib lib site-packages django django db db db db mander.py.py" 82.返回getAttr(self.get_queryset((,名称((*args,** kwargs(

file" c: user user user appdata local program python python python37-32 lib lib site-packages django django db db db db corey.py.py.py.py" 1136.返回QUERY.GEG_COMPILER(使用= lust(.execute_sql(return_id(

file" c: user user user appdata local program python python python37-32 lib lib site-packages django django db db db db sql sql sql compiler compiler.py 1289. cursor.execute(sql,params(

file" c: user user user appdata local program python python python37-32 lib lib site-packages django django db db db backends backends litils.py 100.返回super((。执行(sql,params(

file" c: user user user appdata local program python python python37-32 lib lib site-packages django django db db db backends backends litils.py 68.返回self。

file" c: user user user appdata local program python python python37-32 lib lib site-packages django django db db db backends backends utils.py 77.返回执行者(SQL,参数,许多,上下文(

file" c: user user user appdata local program python python python37-32 lib lib site-packages django django db db db backends backends litils.pys.py 85.返回self.cursor.execute(sql,params(

file" c: user user user appdata local program python python python37-32 lib lib site-packages django django db utils.py" 89.提高dj_exc_value.with_traceback(Trackback(

file" c: user user user appdata local program python python python37-32 lib lib site-packages django django db db db backends backends litils.pys.py 85.返回self.cursor.execute(sql,params(

例外类型:intemptityError at/polls/observe/ 异常值:" poi_id"列中的null值违反了非挂断约束 详细信息:失败行包含(14,某些字符串,2019-05-01,媒体/live-oak-tree-450w_iwbyljs.jpg,null,null(。

分配表单的名称:

species_form = ObservationForm(request.POST, request.FILES)

那是出现问题的地方。

您本可以自己看待它:正如丹尼尔指出的那样,错误跟踪显示错误在species_form.save()上发生了(在您的错误跟踪中查找具有通往您自己代码的路径的行,而不是通往Python的路径/站点包/django/...(。但是在跟踪之外,您可以看到失败行的值:(14, SOME STRING, 2019-05-01, media/Live-Oak-Tree-450w_iWBYljS.jpg, null, null)显然是指Observation模型。因此species_form保存了错误的模型。

最新更新