mirror of
https://github.com/django/django.git
synced 2024-12-01 15:42:04 +01:00
0242c56fd8
Improved Andrew's hack to create temporary app caches to handle migrations. Now the main app cache has a "master" flag set to True (which is a non-default keyword argument, thus unlikely to be used by mistake). Other app cache instances have "master" set to False. The only sanctioned way to access the app cache is by importing django.core.apps.app_cache. If you were instanciating an app cache and relying on the Borg pattern, you'll have to refactor your code.
105 lines
2.6 KiB
Python
105 lines
2.6 KiB
Python
from django.core.apps.cache import AppCache
|
|
from django.db import models
|
|
|
|
# Because we want to test creation and deletion of these as separate things,
|
|
# these models are all inserted into a separate AppCache so the main test
|
|
# runner doesn't migrate them.
|
|
|
|
new_app_cache = AppCache()
|
|
|
|
|
|
class Author(models.Model):
|
|
name = models.CharField(max_length=255)
|
|
height = models.PositiveIntegerField(null=True, blank=True)
|
|
|
|
class Meta:
|
|
app_cache = new_app_cache
|
|
|
|
|
|
class AuthorWithM2M(models.Model):
|
|
name = models.CharField(max_length=255)
|
|
|
|
class Meta:
|
|
app_cache = new_app_cache
|
|
|
|
|
|
class Book(models.Model):
|
|
author = models.ForeignKey(Author)
|
|
title = models.CharField(max_length=100, db_index=True)
|
|
pub_date = models.DateTimeField()
|
|
# tags = models.ManyToManyField("Tag", related_name="books")
|
|
|
|
class Meta:
|
|
app_cache = new_app_cache
|
|
|
|
|
|
class BookWithM2M(models.Model):
|
|
author = models.ForeignKey(Author)
|
|
title = models.CharField(max_length=100, db_index=True)
|
|
pub_date = models.DateTimeField()
|
|
tags = models.ManyToManyField("TagM2MTest", related_name="books")
|
|
|
|
class Meta:
|
|
app_cache = new_app_cache
|
|
|
|
|
|
class BookWithSlug(models.Model):
|
|
author = models.ForeignKey(Author)
|
|
title = models.CharField(max_length=100, db_index=True)
|
|
pub_date = models.DateTimeField()
|
|
slug = models.CharField(max_length=20, unique=True)
|
|
|
|
class Meta:
|
|
app_cache = new_app_cache
|
|
db_table = "schema_book"
|
|
|
|
|
|
class Tag(models.Model):
|
|
title = models.CharField(max_length=255)
|
|
slug = models.SlugField(unique=True)
|
|
|
|
class Meta:
|
|
app_cache = new_app_cache
|
|
|
|
|
|
class TagM2MTest(models.Model):
|
|
title = models.CharField(max_length=255)
|
|
slug = models.SlugField(unique=True)
|
|
|
|
class Meta:
|
|
app_cache = new_app_cache
|
|
|
|
|
|
class TagIndexed(models.Model):
|
|
title = models.CharField(max_length=255)
|
|
slug = models.SlugField(unique=True)
|
|
|
|
class Meta:
|
|
app_cache = new_app_cache
|
|
index_together = [["slug", "title"]]
|
|
|
|
|
|
class TagUniqueRename(models.Model):
|
|
title = models.CharField(max_length=255)
|
|
slug2 = models.SlugField(unique=True)
|
|
|
|
class Meta:
|
|
app_cache = new_app_cache
|
|
db_table = "schema_tag"
|
|
|
|
|
|
class UniqueTest(models.Model):
|
|
year = models.IntegerField()
|
|
slug = models.SlugField(unique=False)
|
|
|
|
class Meta:
|
|
app_cache = new_app_cache
|
|
unique_together = ["year", "slug"]
|
|
|
|
|
|
class BookWithLongName(models.Model):
|
|
author_foreign_key_with_really_long_field_name = models.ForeignKey(Author)
|
|
|
|
class Meta:
|
|
app_cache = new_app_cache
|