我一直在寻找一种定义数据库表并通过Django API修改它们的方法。
例如,我想写一些代码来直接操作表DDL,并允许我以编程方式定义表或向表中添加列(而不运行syncdb)。我意识到django-south和django-evolution可能会出现在脑海中,但我并不真的认为这些工具是要集成到应用程序中并由最终用户使用的工具。相反,这些工具是用于升级数据库表的实用程序。我在找一些我可以做的事情,比如:
class MyModel(models.Model): # wouldn't run syncdb.. instead do something like below
a
我有一个返回django model类的函数,并希望将它们导入到我的app/models/__init__.py中。
我的函数是对这个稍作修改。它克隆一个模型并返回一个<class 'django.db.models.base.ModelBase'>,这是一个稍微修改过的“影子模型”。
就像(在app/models/__init__.py中) from a import test1一样,我想做一些类似的事情:
from c import modeltocopy
from b import dynamic_model('ShadowModel', ap
嗯,我正在一个exist django项目上实现多个db特性。在创建并设置了从db到django的数据库之后,我做的第一件事就是运行syncdb并进行迁移,这将创建大量内置的django表,包括django_content_type表。
然后我意识到,新的django_content_type表中的记录与主数据库中的记录不同。具体来说,主键是不同的。
假设我在主db django_content_type表中有记录,如下所示:
id | name | app_label | model
----+------+-----------+-------
33 | Tag | taggit