diff options
Diffstat (limited to 'tests/tablespaces/models.py')
-rw-r--r-- | tests/tablespaces/models.py | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/tests/tablespaces/models.py b/tests/tablespaces/models.py new file mode 100644 index 0000000000..7d7b96380c --- /dev/null +++ b/tests/tablespaces/models.py @@ -0,0 +1,42 @@ +from django.db import models + +# Since the test database doesn't have tablespaces, it's impossible for Django +# to create the tables for models where db_tablespace is set. To avoid this +# problem, we mark the models as unmanaged, and temporarily revert them to +# managed during each test. We also set them to use the same tables as the +# "reference" models to avoid errors when other tests run 'syncdb' +# (proxy_models_inheritance does). + +class ScientistRef(models.Model): + name = models.CharField(max_length=50) + +class ArticleRef(models.Model): + title = models.CharField(max_length=50, unique=True) + code = models.CharField(max_length=50, unique=True) + authors = models.ManyToManyField(ScientistRef, related_name='articles_written_set') + reviewers = models.ManyToManyField(ScientistRef, related_name='articles_reviewed_set') + +class Scientist(models.Model): + name = models.CharField(max_length=50) + class Meta: + db_table = 'tablespaces_scientistref' + db_tablespace = 'tbl_tbsp' + managed = False + +class Article(models.Model): + title = models.CharField(max_length=50, unique=True) + code = models.CharField(max_length=50, unique=True, db_tablespace='idx_tbsp') + authors = models.ManyToManyField(Scientist, related_name='articles_written_set') + reviewers = models.ManyToManyField(Scientist, related_name='articles_reviewed_set', db_tablespace='idx_tbsp') + class Meta: + db_table = 'tablespaces_articleref' + db_tablespace = 'tbl_tbsp' + managed = False + +# Also set the tables for automatically created models + +Authors = Article._meta.get_field('authors').rel.through +Authors._meta.db_table = 'tablespaces_articleref_authors' + +Reviewers = Article._meta.get_field('reviewers').rel.through +Reviewers._meta.db_table = 'tablespaces_articleref_reviewers' |