Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django中许多领域关系的主要关键问题_Python_Django_Django Models - Fatal编程技术网

Python Django中许多领域关系的主要关键问题

Python Django中许多领域关系的主要关键问题,python,django,django-models,Python,Django,Django Models,我尝试在Django使用很多人际关系,几乎所有的事情都很完美。我有资源和案例研究。目标是使(案例研究)能够从资源表中提取任意数量的项目 以下是最有效的方法 我可以添加资源 我可以编辑资源 我可以添加案例研究 我可以编辑案例研究 我不能 我不能删除资源 我不能删除案例研究 我有一个关系表来处理这种关系: 案例研究\u资源(表) 主要关键问题 从上述代码执行删除时,我收到以下数据库异常: no such column: casestudy_resource.id 第二期 添加主键以修复上

我尝试在Django使用很多人际关系,几乎所有的事情都很完美。我有资源案例研究。目标是使(案例研究)能够从资源表中提取任意数量的项目

以下是最有效的方法

  • 我可以添加资源
  • 我可以编辑资源
  • 我可以添加案例研究
  • 我可以编辑案例研究
我不能

  • 我不能删除资源
  • 我不能删除案例研究
我有一个关系表来处理这种关系:

案例研究\u资源(表)

主要关键问题

从上述代码执行删除时,我收到以下数据库异常:

no such column: casestudy_resource.id

第二期

添加主键以修复上述列时,主键列中仅显示空值。奇怪的是,它们不像Django模型中的所有其他主键那样自动生成:

案例研究\u资源(表)


您可以使用以下内容填充新的
id
列(仅限Postgres):

该列需要同时添加为,
串行
主键

ALTER TABLE casestudy_resource ADD COLUMN id SERIAL;
UPDATE casestudy_resource SET id = nextval(pg_get_serial_sequence('casestudy_resource','id'));
ALTER TABLE casestudy_resource ADD PRIMARY KEY (id);

您可以使用以下内容填充新的
id
列(仅限Postgres):

该列需要同时添加为,
串行
主键

ALTER TABLE casestudy_resource ADD COLUMN id SERIAL;
UPDATE casestudy_resource SET id = nextval(pg_get_serial_sequence('casestudy_resource','id'));
ALTER TABLE casestudy_resource ADD PRIMARY KEY (id);

您可以先手动删除案例研究资源。如果您愿意自动删除所有案例研究资源;您只需在外键中添加“on_delete=models.CASCADE”。看看你想删除什么,怎么删除?弗朗索瓦-我已经试过了。我使用了名为“through”的ManyToManyField属性,该属性直接链接到一个具有两个ForeignKey引用的新类。一个ForeignKey用于资源id,一个ForeignKey用于案例研究id。这导致ManyToManyField字段根本不出现在administration panel.AKS中-我只是试图从Django管理员中删除一个案例研究或一般资源资产。工作解决方案(承认相当粗糙):由于只有删除操作受到影响,我有一个带有过滤器视图的显示/隐藏标志,仅显示所需的资产。但是,您仍然希望知道正确的解决方案。您可以先手动删除案例研究资源。如果您愿意自动删除所有案例研究资源;您只需在外键中添加“on_delete=models.CASCADE”。看看你想删除什么,怎么删除?弗朗索瓦-我已经试过了。我使用了名为“through”的ManyToManyField属性,该属性直接链接到一个具有两个ForeignKey引用的新类。一个ForeignKey用于资源id,一个ForeignKey用于案例研究id。这导致ManyToManyField字段根本不出现在administration panel.AKS中-我只是试图从Django管理员中删除一个案例研究或一般资源资产。工作解决方案(承认相当粗糙):由于只有删除操作受到影响,我有一个带有过滤器视图的显示/隐藏标志,仅显示所需的资产。不过,我仍然很想知道正确的解决方案。不幸的是,这是我继承的一个项目,并且使用了SQLITE3(所以上面的方法行不通)。这个项目在被替换之前只会再运行几个月。因此,目前,我正在使用更新的过滤器视图来显示所需的资产,这是一个显示/隐藏标志,这是公认的非常粗糙的。然而,我仔细阅读了大量的stackoverflow问题和Django文档,还没有找到一个好的答案,我想为我身边的每一个人做点什么。使用sqlite,AFAIK添加主键的唯一方法是:创建一个新表,将数据复制到新表,删除旧表,重命名新表。不幸的是,这是一个我继承并使用SQLite 3的项目(因此上面的方法不起作用)。这个项目在被替换之前只会再运行几个月。因此,目前,我正在使用更新的过滤器视图来显示所需的资产,这是一个显示/隐藏标志,这是公认的非常粗糙的。然而,我仔细阅读了大量的stackoverflow问题和Django文档,还没有找到一个好的答案,我想为我身边的每一个人做点什么。使用sqlite,AFAIK添加主键的唯一方法是:创建一个新表,将数据复制到新表,删除旧表,重命名新表。 id casestudy_id resource_id NULL 1 2 NULL 1 5 NULL 1 9
'NoneType' object has no attribute 'resource'
UPDATE casestudy_resource SET id = nextval(pg_get_serial_sequence('casestudy_resource','id'));
ALTER TABLE casestudy_resource ADD COLUMN id SERIAL;
UPDATE casestudy_resource SET id = nextval(pg_get_serial_sequence('casestudy_resource','id'));
ALTER TABLE casestudy_resource ADD PRIMARY KEY (id);