mirror of
https://github.com/django/django.git
synced 2024-12-23 09:36:06 +00:00
f54c0ec06e
Without that, the Note model would be initially created and then the tests using that model failed when run in isolation.
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"]
|