动态创建新表

时间:2012-08-14 04:00:06

标签: django

我是Django plotform的新手。我正在尝试编写一个基本上接受post方法的程序。传入数据的内容为storename, bookname, bookserial。该部分已经实施并且运作良好。当我发布storename=John's shopping center, bookname=Love is beatiful, bookserial=123等内容时。它创建一个表并将这些内容保存到表中。但是,问题是我想为每个商店创建一个表。因为,我可以有多个storename,每个商店应该有自己的表。当我即时发布storename时,应检查storename,然后如果已创建表,则应在其表中插入booknamebookserial。如果没有,则应创建一个新表,然后在新表中插入传入数据。新的表名也应该是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

因此,每个购物中心的模型都相同,但每个购物中心都是一个与购物中心名称不同的表格。

1 个答案:

答案 0 :(得分:1)

在传统意义上,不可能在django中动态创建具体的表格。模型必须作为应用程序启动的一部分进行注册,以便ORM可以正确地管理所有关系。考虑如果您定义了一个为其他模型设置约束或backrefs的新模型会发生什么。那些其他模型,即类,已经建立并存在于内存中。他们不能再通过他们的元类步骤来建立新的关系。你可以轻易打破一切。

您的选项仅限于涉及可以动态描述不同实体的几个表的解决方案,或者使用不关心模式的nosql后端,并且可以随时存储任何内容。

有关详细信息,请参阅此问题和答案:Django dynamic model fields

实时拥有一个具体表格的唯一方法是让django应用程序完全重启自己作为响应。