models.py 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. from __future__ import unicode_literals
  2. from django.db import models
  3. from django.utils.encoding import python_2_unicode_compatible
  4. from django.utils.http import urlquote
  5. @python_2_unicode_compatible
  6. class Author(models.Model):
  7. name = models.CharField(max_length=100)
  8. def __str__(self):
  9. return self.name
  10. def get_absolute_url(self):
  11. return '/authors/%s/' % self.id
  12. @python_2_unicode_compatible
  13. class Article(models.Model):
  14. title = models.CharField(max_length=100)
  15. slug = models.SlugField()
  16. author = models.ForeignKey(Author, models.CASCADE)
  17. date_created = models.DateTimeField()
  18. def __str__(self):
  19. return self.title
  20. @python_2_unicode_compatible
  21. class SchemeIncludedURL(models.Model):
  22. url = models.URLField(max_length=100)
  23. def __str__(self):
  24. return self.url
  25. def get_absolute_url(self):
  26. return self.url
  27. class ConcreteModel(models.Model):
  28. name = models.CharField(max_length=10)
  29. class ProxyModel(ConcreteModel):
  30. class Meta:
  31. proxy = True
  32. @python_2_unicode_compatible
  33. class FooWithoutUrl(models.Model):
  34. """
  35. Fake model not defining ``get_absolute_url`` for
  36. ContentTypesTests.test_shortcut_view_without_get_absolute_url()
  37. """
  38. name = models.CharField(max_length=30, unique=True)
  39. def __str__(self):
  40. return self.name
  41. class FooWithUrl(FooWithoutUrl):
  42. """
  43. Fake model defining ``get_absolute_url`` for
  44. ContentTypesTests.test_shortcut_view().
  45. """
  46. def get_absolute_url(self):
  47. return "/users/%s/" % urlquote(self.name)
  48. class FooWithBrokenAbsoluteUrl(FooWithoutUrl):
  49. """
  50. Fake model defining a ``get_absolute_url`` method containing an error
  51. """
  52. def get_absolute_url(self):
  53. return "/users/%s/" % self.unknown_field