我正在编写一个 Django 应用程序,但有一个单独的过程来创建/管理表。 换句话说,我不希望 Django 管理任何数据库表。 为了实现这一点,我在
managed = False
类中使用 Meta
,例如:
class School(models.Model):
schoolid = models.IntegerField(primary_key=True)
schooldisplayname = models.CharField(max_length=100)
address = models.CharField(max_length=100)
city = models.CharField(max_length=100)
department = models.CharField(max_length=100)
class Meta:
managed = False
但是必须始终为每个模型指定这一点,这很烦人。 有没有办法默认将其作为全局设置应用于我的所有模型?
我不太确定该怎么做。最好将它们全部标记为
managed = false
,这样就更明确了。
您可以在设置中全局禁用迁移。不太一样...
from settings import *
class DisableMigrations(object):
def __contains__(self, item):
return True
def __getitem__(self, item):
return 'notmigrations'
MIGRATION_MODULES = DisableMigrations()
虽然我不确定是否存在全局方法,但如果您正在寻找一种快速方法来为现有模型标记 Managed=False 。你可以做到这一点。
python manage.py inspectdb > yourapp/models.py
默认情况下,您在每个模型类中都会获得 Managed = False。