mirror of
https://github.com/django/django.git
synced 2025-01-01 14:06:06 +00:00
ff6e8681a3
Without that, the Note model would be initially created and then
the tests using that model failed when run in isolation.
Backport of f54c0ec06e
from master.
143 lines
3.3 KiB
Python
143 lines
3.3 KiB
Python
from django.apps.registry import Apps
|
|
from django.db import models
|
|
from django.utils.encoding import python_2_unicode_compatible
|
|
|
|
# Because we want to test creation and deletion of these as separate things,
|
|
# these models are all inserted into a separate Apps so the main test
|
|
# runner doesn't migrate them.
|
|
|
|
new_apps = Apps()
|
|
|
|
|
|
class Author(models.Model):
|
|
name = models.CharField(max_length=255)
|
|
height = models.PositiveIntegerField(null=True, blank=True)
|
|
|
|
class Meta:
|
|
apps = new_apps
|
|
|
|
|
|
class AuthorWithDefaultHeight(models.Model):
|
|
name = models.CharField(max_length=255)
|
|
height = models.PositiveIntegerField(null=True, blank=True, default=42)
|
|
|
|
class Meta:
|
|
apps = new_apps
|
|
|
|
|
|
class AuthorWithEvenLongerName(models.Model):
|
|
name = models.CharField(max_length=255)
|
|
height = models.PositiveIntegerField(null=True, blank=True)
|
|
|
|
class Meta:
|
|
apps = new_apps
|
|
|
|
|
|
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:
|
|
apps = new_apps
|
|
|
|
|
|
class BookWeak(models.Model):
|
|
author = models.ForeignKey(Author, db_constraint=False)
|
|
title = models.CharField(max_length=100, db_index=True)
|
|
pub_date = models.DateTimeField()
|
|
|
|
class Meta:
|
|
apps = new_apps
|
|
|
|
|
|
class BookWithLongName(models.Model):
|
|
author_foreign_key_with_really_long_field_name = models.ForeignKey(AuthorWithEvenLongerName)
|
|
|
|
class Meta:
|
|
apps = new_apps
|
|
|
|
|
|
class BookWithO2O(models.Model):
|
|
author = models.OneToOneField(Author)
|
|
title = models.CharField(max_length=100, db_index=True)
|
|
pub_date = models.DateTimeField()
|
|
|
|
class Meta:
|
|
apps = new_apps
|
|
db_table = "schema_book"
|
|
|
|
|
|
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:
|
|
apps = new_apps
|
|
db_table = "schema_book"
|
|
|
|
|
|
class Note(models.Model):
|
|
info = models.TextField()
|
|
|
|
class Meta:
|
|
apps = new_apps
|
|
|
|
|
|
class Tag(models.Model):
|
|
title = models.CharField(max_length=255)
|
|
slug = models.SlugField(unique=True)
|
|
|
|
class Meta:
|
|
apps = new_apps
|
|
|
|
|
|
class TagIndexed(models.Model):
|
|
title = models.CharField(max_length=255)
|
|
slug = models.SlugField(unique=True)
|
|
|
|
class Meta:
|
|
apps = new_apps
|
|
index_together = [["slug", "title"]]
|
|
|
|
|
|
class TagM2MTest(models.Model):
|
|
title = models.CharField(max_length=255)
|
|
slug = models.SlugField(unique=True)
|
|
|
|
class Meta:
|
|
apps = new_apps
|
|
|
|
|
|
class TagUniqueRename(models.Model):
|
|
title = models.CharField(max_length=255)
|
|
slug2 = models.SlugField(unique=True)
|
|
|
|
class Meta:
|
|
apps = new_apps
|
|
db_table = "schema_tag"
|
|
|
|
|
|
# Based on tests/reserved_names/models.py
|
|
@python_2_unicode_compatible
|
|
class Thing(models.Model):
|
|
when = models.CharField(max_length=1, primary_key=True)
|
|
|
|
class Meta:
|
|
db_table = 'drop'
|
|
|
|
def __str__(self):
|
|
return self.when
|
|
|
|
|
|
class UniqueTest(models.Model):
|
|
year = models.IntegerField()
|
|
slug = models.SlugField(unique=False)
|
|
|
|
class Meta:
|
|
apps = new_apps
|
|
unique_together = ["year", "slug"]
|