我为此目的编写了自定义模块
您只需将其保存在一些 utils/models.db 和所有模型中,而不是from django.db import models
写入from utils import models
如果有人对此感兴趣,我可以编写一个组件并将其发布到 pypi
UPD:试试这个https://github.com/FeroxTL/django-migration-control
# models.py
# -*- coding: utf-8 -*-
from types import FunctionType
from django.db import models
class NoMigrateMixin(object):
"""
Позволяет исключить из миграций различные поля
"""
def deconstruct(self):
name, path, args, kwargs = super(NoMigrateMixin, self).deconstruct()
kwargs.pop('help_text', None)
kwargs.pop('verbose_name', None)
return name, path, args, kwargs
# =============================================================================
# DJANGO CLASSES
# =============================================================================
for name, cls in models.__dict__.items():
if isinstance(cls, type):
if issubclass(cls, models.Field):
# Поля
globals()[name] = type(name, (NoMigrateMixin, cls), {})
else:
# Всякие менеджеры
globals()[name] = cls
elif isinstance(cls, FunctionType):
# Прочие функции
globals()[name] = cls