您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

如何在Django测试期间使用managed = False创建表

如何在Django测试期间使用managed = False创建表

请查看此博客文章http ://www.caktusgroup.com/blog/2010/09/24/simplifying-the-testing-of-unmanaged- database-models-in- django/详细描述了创建一个非托管模型的测试运行程序。

from django.test.simple import DjangoTestSuiteRunner


class ManagedModelTestRunner(DjangoTestSuiteRunner):
    """
    Test runner that automatically makes all unmanaged models in your Django
    project managed for the duration of the test run, so that one doesn't need
    to execute the sql manually to create them.
    """
    def setup_test_environment(self, *args, **kwargs):
        from django.db.models.loading import get_models
        self.unmanaged_models = [m for m in get_models()
                                 if not m._Meta.managed]
        for m in self.unmanaged_models:
            m._Meta.managed = True
        super(ManagedModelTestRunner, self).setup_test_environment(*args,
                                                                   **kwargs)

    def teardown_test_environment(self, *args, **kwargs):
        super(ManagedModelTestRunner, self).teardown_test_environment(*args,
                                                                      **kwargs)
        # reset unmanaged models
        for m in self.unmanaged_models:
            m._Meta.managed = False
Go 2022/1/1 18:36:07 有369人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶