我是Django plotform的新手。我正在尝试编写一个基本上接受post方法的程序。传入数据的内容为storename, bookname, bookserial
。该部分已经实施并且运作良好。当我发布storename=John's shopping center, bookname=Love is beatiful, bookserial=123
等内容时。它创建一个表并将这些内容保存到表中。但是,问题是我想为每个商店创建一个表。因为,我可以有多个storename
,每个商店应该有自己的表。当我即时发布storename
时,应检查storename
,然后如果已创建表,则应在其表中插入bookname
和bookserial
。如果没有,则应创建一个新表,然后在新表中插入传入数据。新的表名也应该是storename
。所以,正如我所说,我只需要学习如何动态创建新表。能否帮助我如何做到这一点,任何评论和想法都值得赞赏....
一个明确的例子,
Table-1=John's shopping center
bookname=Love is beatiful
bookserial=123
Table-2= John's shopping center-2
bookname=Time is important
bookserial=456
因此,每个购物中心的模型都相同,但每个购物中心都是一个与购物中心名称不同的表格。
答案 0 :(得分:1)
在传统意义上,不可能在django中动态创建具体的表格。模型必须作为应用程序启动的一部分进行注册,以便ORM可以正确地管理所有关系。考虑如果您定义了一个为其他模型设置约束或backrefs的新模型会发生什么。那些其他模型,即类,已经建立并存在于内存中。他们不能再通过他们的元类步骤来建立新的关系。你可以轻易打破一切。
您的选项仅限于涉及可以动态描述不同实体的几个表的解决方案,或者使用不关心模式的nosql后端,并且可以随时存储任何内容。
有关详细信息,请参阅此问题和答案:Django dynamic model fields
实时拥有一个具体表格的唯一方法是让django应用程序完全重启自己作为响应。