models.py 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. from django.contrib import admin
  2. from django.db import models
  3. from django.utils.translation import gettext_lazy as _
  4. class Site(models.Model):
  5. domain = models.CharField(max_length=100)
  6. def __str__(self):
  7. return self.domain
  8. class Article(models.Model):
  9. """
  10. A simple Article model for testing
  11. """
  12. site = models.ForeignKey(Site, models.CASCADE, related_name="admin_articles")
  13. title = models.CharField(max_length=100)
  14. hist = models.CharField(
  15. max_length=100,
  16. verbose_name=_('History'),
  17. help_text=_('History help text'),
  18. )
  19. created = models.DateTimeField(null=True)
  20. def __str__(self):
  21. return self.title
  22. def test_from_model(self):
  23. return "nothing"
  24. @admin.display(description='not What you Expect')
  25. def test_from_model_with_override(self):
  26. return "nothing"
  27. class ArticleProxy(Article):
  28. class Meta:
  29. proxy = True
  30. class Count(models.Model):
  31. num = models.PositiveSmallIntegerField()
  32. parent = models.ForeignKey('self', models.CASCADE, null=True)
  33. def __str__(self):
  34. return str(self.num)
  35. class Event(models.Model):
  36. date = models.DateTimeField(auto_now_add=True)
  37. class Location(models.Model):
  38. event = models.OneToOneField(Event, models.CASCADE, verbose_name='awesome event')
  39. class Guest(models.Model):
  40. event = models.OneToOneField(Event, models.CASCADE)
  41. name = models.CharField(max_length=255)
  42. class Meta:
  43. verbose_name = "awesome guest"
  44. class EventGuide(models.Model):
  45. event = models.ForeignKey(Event, models.DO_NOTHING)
  46. class Vehicle(models.Model):
  47. pass
  48. class VehicleMixin(Vehicle):
  49. vehicle = models.OneToOneField(
  50. Vehicle,
  51. models.CASCADE,
  52. parent_link=True,
  53. related_name='vehicle_%(app_label)s_%(class)s',
  54. )
  55. class Meta:
  56. abstract = True
  57. class Car(VehicleMixin):
  58. pass