models.py 1.3 KB
Newer Older
1
"""
2
Regression tests for Django built-in views.
3 4 5
"""

from django.db import models
6
from django.utils.encoding import python_2_unicode_compatible
7

Jason Myers's avatar
Jason Myers committed
8

9
@python_2_unicode_compatible
10 11 12
class Author(models.Model):
    name = models.CharField(max_length=100)

13
    def __str__(self):
14 15 16
        return self.name

    def get_absolute_url(self):
17
        return '/authors/%s/' % self.id
18

Jason Myers's avatar
Jason Myers committed
19

20
@python_2_unicode_compatible
21 22 23 24 25
class BaseArticle(models.Model):
    """
    An abstract article Model so that we can create article models with and
    without a get_absolute_url method (for create_update generic views tests).
    """
26
    title = models.CharField(max_length=100)
27
    slug = models.SlugField()
28
    author = models.ForeignKey(Author, models.CASCADE)
29 30 31 32

    class Meta:
        abstract = True

33
    def __str__(self):
34 35
        return self.title

Jason Myers's avatar
Jason Myers committed
36

37
class Article(BaseArticle):
38
    date_created = models.DateTimeField()
39

Jason Myers's avatar
Jason Myers committed
40

41 42 43 44
class UrlArticle(BaseArticle):
    """
    An Article class with a get_absolute_url defined.
    """
45 46
    date_created = models.DateTimeField()

47 48
    def get_absolute_url(self):
        return '/urlarticles/%s/' % self.slug
49
    get_absolute_url.purge = True
50

Jason Myers's avatar
Jason Myers committed
51

52 53 54 55 56 57
class DateArticle(BaseArticle):
    """
    An article Model with a DateField instead of DateTimeField,
    for testing #7602
    """
    date_created = models.DateField()