diff options
Diffstat (limited to 'tests/model_forms/models.py')
| -rw-r--r-- | tests/model_forms/models.py | 147 |
1 files changed, 84 insertions, 63 deletions
diff --git a/tests/model_forms/models.py b/tests/model_forms/models.py index c0b3a64148..a6f306c5b2 100644 --- a/tests/model_forms/models.py +++ b/tests/model_forms/models.py @@ -19,7 +19,7 @@ class Person(models.Model): class Category(models.Model): name = models.CharField(max_length=20) slug = models.SlugField(max_length=20) - url = models.CharField('The URL', max_length=40) + url = models.CharField("The URL", max_length=40) def __str__(self): return self.name @@ -35,13 +35,13 @@ class WriterManager(models.Manager): class Writer(models.Model): - name = models.CharField(max_length=50, help_text='Use both first and last names.') + name = models.CharField(max_length=50, help_text="Use both first and last names.") archived = models.BooleanField(default=False, editable=False) objects = WriterManager() class Meta: - ordering = ('name',) + ordering = ("name",) def __str__(self): return self.name @@ -49,9 +49,9 @@ class Writer(models.Model): class Article(models.Model): ARTICLE_STATUS = ( - (1, 'Draft'), - (2, 'Pending'), - (3, 'Live'), + (1, "Draft"), + (2, "Pending"), + (3, "Live"), ) headline = models.CharField(max_length=50) slug = models.SlugField() @@ -92,7 +92,7 @@ class Publication(models.Model): def default_mode(): - return 'di' + return "di" def default_category(): @@ -100,19 +100,21 @@ def default_category(): class PublicationDefaults(models.Model): - MODE_CHOICES = (('di', 'direct'), ('de', 'delayed')) - CATEGORY_CHOICES = ((1, 'Games'), (2, 'Comics'), (3, 'Novel')) + MODE_CHOICES = (("di", "direct"), ("de", "delayed")) + CATEGORY_CHOICES = ((1, "Games"), (2, "Comics"), (3, "Novel")) title = models.CharField(max_length=30) date_published = models.DateField(default=datetime.date.today) datetime_published = models.DateTimeField(default=datetime.datetime(2000, 1, 1)) mode = models.CharField(max_length=2, choices=MODE_CHOICES, default=default_mode) category = models.IntegerField(choices=CATEGORY_CHOICES, default=default_category) active = models.BooleanField(default=True) - file = models.FileField(default='default.txt') + file = models.FileField(default="default.txt") class Author(models.Model): - publication = models.OneToOneField(Publication, models.SET_NULL, null=True, blank=True) + publication = models.OneToOneField( + Publication, models.SET_NULL, null=True, blank=True + ) full_name = models.CharField(max_length=255) @@ -130,12 +132,12 @@ class WriterProfile(models.Model): class Document(models.Model): - myfile = models.FileField(upload_to='unused', blank=True) + myfile = models.FileField(upload_to="unused", blank=True) class TextFile(models.Model): description = models.CharField(max_length=20) - file = models.FileField(storage=temp_storage, upload_to='tests', max_length=15) + file = models.FileField(storage=temp_storage, upload_to="tests", max_length=15) def __str__(self): return self.description @@ -143,17 +145,19 @@ class TextFile(models.Model): class CustomFileField(models.FileField): def save_form_data(self, instance, data): - been_here = getattr(self, 'been_saved', False) + been_here = getattr(self, "been_saved", False) assert not been_here, "save_form_data called more than once" - setattr(self, 'been_saved', True) + setattr(self, "been_saved", True) class CustomFF(models.Model): - f = CustomFileField(upload_to='unused', blank=True) + f = CustomFileField(upload_to="unused", blank=True) class FilePathModel(models.Model): - path = models.FilePathField(path=os.path.dirname(__file__), match='models.py', blank=True) + path = models.FilePathField( + path=os.path.dirname(__file__), match="models.py", blank=True + ) try: @@ -163,8 +167,8 @@ try: class ImageFile(models.Model): def custom_upload_path(self, filename): - path = self.path or 'tests' - return '%s/%s' % (path, filename) + path = self.path or "tests" + return "%s/%s" % (path, filename) description = models.CharField(max_length=20) @@ -172,32 +176,41 @@ try: # trigger the bug in #10404 with width/height not getting assigned. width = models.IntegerField(editable=False) height = models.IntegerField(editable=False) - image = models.ImageField(storage=temp_storage, upload_to=custom_upload_path, - width_field='width', height_field='height') - path = models.CharField(max_length=16, blank=True, default='') + image = models.ImageField( + storage=temp_storage, + upload_to=custom_upload_path, + width_field="width", + height_field="height", + ) + path = models.CharField(max_length=16, blank=True, default="") def __str__(self): return self.description class OptionalImageFile(models.Model): def custom_upload_path(self, filename): - path = self.path or 'tests' - return '%s/%s' % (path, filename) + path = self.path or "tests" + return "%s/%s" % (path, filename) description = models.CharField(max_length=20) - image = models.ImageField(storage=temp_storage, upload_to=custom_upload_path, - width_field='width', height_field='height', - blank=True, null=True) + image = models.ImageField( + storage=temp_storage, + upload_to=custom_upload_path, + width_field="width", + height_field="height", + blank=True, + null=True, + ) width = models.IntegerField(editable=False, null=True) height = models.IntegerField(editable=False, null=True) - path = models.CharField(max_length=16, blank=True, default='') + path = models.CharField(max_length=16, blank=True, default="") def __str__(self): return self.description class NoExtensionImageFile(models.Model): def upload_to(self, filename): - return 'tests/no_extension' + return "tests/no_extension" description = models.CharField(max_length=20) image = models.ImageField(storage=temp_storage, upload_to=upload_to) @@ -225,7 +238,7 @@ class Price(models.Model): quantity = models.PositiveIntegerField() class Meta: - unique_together = (('price', 'quantity'),) + unique_together = (("price", "quantity"),) def __str__(self): return "%s for %s" % (self.quantity, self.price) @@ -237,25 +250,29 @@ class Triple(models.Model): right = models.IntegerField() class Meta: - unique_together = (('left', 'middle'), ('middle', 'right')) + unique_together = (("left", "middle"), ("middle", "right")) class ArticleStatus(models.Model): ARTICLE_STATUS_CHAR = ( - ('d', 'Draft'), - ('p', 'Pending'), - ('l', 'Live'), + ("d", "Draft"), + ("p", "Pending"), + ("l", "Live"), + ) + status = models.CharField( + max_length=2, choices=ARTICLE_STATUS_CHAR, blank=True, null=True ) - status = models.CharField(max_length=2, choices=ARTICLE_STATUS_CHAR, blank=True, null=True) class Inventory(models.Model): barcode = models.PositiveIntegerField(unique=True) - parent = models.ForeignKey('self', models.SET_NULL, to_field='barcode', blank=True, null=True) + parent = models.ForeignKey( + "self", models.SET_NULL, to_field="barcode", blank=True, null=True + ) name = models.CharField(blank=False, max_length=20) class Meta: - ordering = ('name',) + ordering = ("name",) def __str__(self): return self.name @@ -270,7 +287,7 @@ class Book(models.Model): special_id = models.IntegerField(blank=True, null=True, unique=True) class Meta: - unique_together = ('title', 'author') + unique_together = ("title", "author") class BookXtra(models.Model): @@ -279,7 +296,7 @@ class BookXtra(models.Model): suffix2 = models.IntegerField(blank=True, default=0) class Meta: - unique_together = (('suffix1', 'suffix2')) + unique_together = ("suffix1", "suffix2") abstract = True @@ -292,16 +309,16 @@ class ExplicitPK(models.Model): desc = models.CharField(max_length=20, blank=True, unique=True) class Meta: - unique_together = ('key', 'desc') + unique_together = ("key", "desc") def __str__(self): return self.key class Post(models.Model): - title = models.CharField(max_length=50, unique_for_date='posted', blank=True) - slug = models.CharField(max_length=50, unique_for_year='posted', blank=True) - subtitle = models.CharField(max_length=50, unique_for_month='posted', blank=True) + title = models.CharField(max_length=50, unique_for_date="posted", blank=True) + slug = models.CharField(max_length=50, unique_for_year="posted", blank=True) + subtitle = models.CharField(max_length=50, unique_for_month="posted", blank=True) posted = models.DateField() def __str__(self): @@ -309,9 +326,9 @@ class Post(models.Model): class DateTimePost(models.Model): - title = models.CharField(max_length=50, unique_for_date='posted', blank=True) - slug = models.CharField(max_length=50, unique_for_year='posted', blank=True) - subtitle = models.CharField(max_length=50, unique_for_month='posted', blank=True) + title = models.CharField(max_length=50, unique_for_date="posted", blank=True) + slug = models.CharField(max_length=50, unique_for_year="posted", blank=True) + subtitle = models.CharField(max_length=50, unique_for_month="posted", blank=True) posted = models.DateTimeField(editable=False) def __str__(self): @@ -348,9 +365,9 @@ class CustomFieldForExclusionModel(models.Model): class FlexibleDatePost(models.Model): - title = models.CharField(max_length=50, unique_for_date='posted', blank=True) - slug = models.CharField(max_length=50, unique_for_year='posted', blank=True) - subtitle = models.CharField(max_length=50, unique_for_month='posted', blank=True) + title = models.CharField(max_length=50, unique_for_date="posted", blank=True) + slug = models.CharField(max_length=50, unique_for_year="posted", blank=True) + subtitle = models.CharField(max_length=50, unique_for_month="posted", blank=True) posted = models.DateField(blank=True, null=True) @@ -373,20 +390,24 @@ class CustomErrorMessage(models.Model): name1 = models.CharField( max_length=50, validators=[validators.validate_slug], - error_messages={'invalid': 'Model custom error message.'}, + error_messages={"invalid": "Model custom error message."}, ) name2 = models.CharField( max_length=50, validators=[validators.validate_slug], - error_messages={'invalid': 'Model custom error message.'}, + error_messages={"invalid": "Model custom error message."}, ) def clean(self): - if self.name1 == 'FORBIDDEN_VALUE': - raise ValidationError({'name1': [ValidationError('Model.clean() error messages.')]}) - elif self.name1 == 'FORBIDDEN_VALUE2': - raise ValidationError({'name1': 'Model.clean() error messages (simpler syntax).'}) - elif self.name1 == 'GLOBAL_ERROR': + if self.name1 == "FORBIDDEN_VALUE": + raise ValidationError( + {"name1": [ValidationError("Model.clean() error messages.")]} + ) + elif self.name1 == "FORBIDDEN_VALUE2": + raise ValidationError( + {"name1": "Model.clean() error messages (simpler syntax)."} + ) + elif self.name1 == "GLOBAL_ERROR": raise ValidationError("Global error message.") @@ -411,12 +432,12 @@ class StumpJoke(models.Model): Character, models.CASCADE, limit_choices_to=today_callable_dict, - related_name='jokes', + related_name="jokes", ) has_fooled_today = models.ManyToManyField( Character, limit_choices_to=today_callable_q, - related_name='jokes_today', + related_name="jokes_today", ) funny = models.BooleanField(default=False) @@ -430,7 +451,7 @@ class Student(models.Model): # Model for #639 class Photo(models.Model): title = models.CharField(max_length=30) - image = models.FileField(storage=temp_storage, upload_to='tests') + image = models.FileField(storage=temp_storage, upload_to="tests") # Support code for the tests; this keeps track of how many times save() # gets called on each instance. @@ -455,7 +476,7 @@ class StrictAssignmentFieldSpecific(models.Model): def __setattr__(self, key, value): if self._should_error is True: - raise ValidationError(message={key: "Cannot set attribute"}, code='invalid') + raise ValidationError(message={key: "Cannot set attribute"}, code="invalid") super().__setattr__(key, value) @@ -465,7 +486,7 @@ class StrictAssignmentAll(models.Model): def __setattr__(self, key, value): if self._should_error is True: - raise ValidationError(message="Cannot set attribute", code='invalid') + raise ValidationError(message="Cannot set attribute", code="invalid") super().__setattr__(key, value) @@ -487,8 +508,8 @@ class Number(models.Model): class NumbersToDice(models.Model): - number = models.ForeignKey('Number', on_delete=models.CASCADE) - die = models.ForeignKey('Dice', on_delete=models.CASCADE) + number = models.ForeignKey("Number", on_delete=models.CASCADE) + die = models.ForeignKey("Dice", on_delete=models.CASCADE) class Dice(models.Model): |
