Django ORM是否定义了从给定表的指定列下的每一行生成表的构造?
例如:假设我们有下面的表格。
Table: Person
id|name |age
-------------
1 |John |60
2 |Isaac |24
3 |Fred |50
4 |Will |35 现在我需要一个对象,它从Person中name下的每一行创建一个表。对于John和Isaac条目,这将得到:
Table: John
id|name |age_diff
------------------
1 |Isaac |36
2 |Fred |10
3 |Will |25
Table: Isaac
id|name |age_diff
-------------------
1 |John |36
2 |Fred |26
3 |Will |11发布于 2012-11-10 23:37:25
没有。在库存中,django表是由“syncdb”命令创建的,它的ORM不处理表的动态添加或修改。
发布于 2012-11-11 00:02:56
据我所知,Django的ORM不能为您创建表。您可以通过原始SQL语句做到这一点:
from django.db import connection, transaction
name = 'John'
cursor = connection.cursor()
cursor.execute('CREATE TABLE '+name+'(id int NOT NULL AUTO_INCREMENT,\
name VARCHAR(30) NOT NULL, age_diff int NOT NULL,\
PRIMARY KEY(id))')
transaction.commit_unless_managed()但那是相当丑陋的。我认为至少在您的示例中,创建这些额外的表是没有意义的。这似乎是对存储空间的巨大浪费,却没有任何收益。您也可以在需要的时候在Python代码中创建年龄差异。这也会更直观。
https://stackoverflow.com/questions/13323089
复制相似问题