1. import uuid
    
  2. 
    
  3. from django.db import models
    
  4. 
    
  5. 
    
  6. class Event(models.Model):
    
  7.     # Oracle can have problems with a column named "date"
    
  8.     date = models.DateField(db_column="event_date")
    
  9. 
    
  10. 
    
  11. class Parent(models.Model):
    
  12.     name = models.CharField(max_length=128)
    
  13. 
    
  14. 
    
  15. class Child(models.Model):
    
  16.     parent = models.ForeignKey(Parent, models.SET_NULL, editable=False, null=True)
    
  17.     name = models.CharField(max_length=30, blank=True)
    
  18.     age = models.IntegerField(null=True, blank=True)
    
  19. 
    
  20. 
    
  21. class Genre(models.Model):
    
  22.     name = models.CharField(max_length=20)
    
  23. 
    
  24. 
    
  25. class Band(models.Model):
    
  26.     name = models.CharField(max_length=20)
    
  27.     nr_of_members = models.PositiveIntegerField()
    
  28.     genres = models.ManyToManyField(Genre)
    
  29. 
    
  30. 
    
  31. class Musician(models.Model):
    
  32.     name = models.CharField(max_length=30)
    
  33.     age = models.IntegerField(null=True, blank=True)
    
  34. 
    
  35.     def __str__(self):
    
  36.         return self.name
    
  37. 
    
  38. 
    
  39. class Group(models.Model):
    
  40.     name = models.CharField(max_length=30)
    
  41.     members = models.ManyToManyField(Musician, through="Membership")
    
  42. 
    
  43.     def __str__(self):
    
  44.         return self.name
    
  45. 
    
  46. 
    
  47. class Concert(models.Model):
    
  48.     name = models.CharField(max_length=30)
    
  49.     group = models.ForeignKey(Group, models.CASCADE)
    
  50. 
    
  51. 
    
  52. class Membership(models.Model):
    
  53.     music = models.ForeignKey(Musician, models.CASCADE)
    
  54.     group = models.ForeignKey(Group, models.CASCADE)
    
  55.     role = models.CharField(max_length=15)
    
  56. 
    
  57. 
    
  58. class Quartet(Group):
    
  59.     pass
    
  60. 
    
  61. 
    
  62. class ChordsMusician(Musician):
    
  63.     pass
    
  64. 
    
  65. 
    
  66. class ChordsBand(models.Model):
    
  67.     name = models.CharField(max_length=30)
    
  68.     members = models.ManyToManyField(ChordsMusician, through="Invitation")
    
  69. 
    
  70. 
    
  71. class Invitation(models.Model):
    
  72.     player = models.ForeignKey(ChordsMusician, models.CASCADE)
    
  73.     band = models.ForeignKey(ChordsBand, models.CASCADE)
    
  74.     instrument = models.CharField(max_length=15)
    
  75. 
    
  76. 
    
  77. class Swallow(models.Model):
    
  78.     uuid = models.UUIDField(primary_key=True, default=uuid.uuid4)
    
  79.     origin = models.CharField(max_length=255)
    
  80.     load = models.FloatField()
    
  81.     speed = models.FloatField()
    
  82. 
    
  83.     class Meta:
    
  84.         ordering = ("speed", "load")
    
  85. 
    
  86. 
    
  87. class SwallowOneToOne(models.Model):
    
  88.     swallow = models.OneToOneField(Swallow, models.CASCADE)
    
  89. 
    
  90. 
    
  91. class UnorderedObject(models.Model):
    
  92.     """
    
  93.     Model without any defined `Meta.ordering`.
    
  94.     Refs #17198.
    
  95.     """
    
  96. 
    
  97.     bool = models.BooleanField(default=True)
    
  98. 
    
  99. 
    
  100. class OrderedObjectManager(models.Manager):
    
  101.     def get_queryset(self):
    
  102.         return super().get_queryset().order_by("number")
    
  103. 
    
  104. 
    
  105. class OrderedObject(models.Model):
    
  106.     """
    
  107.     Model with Manager that defines a default order.
    
  108.     Refs #17198.
    
  109.     """
    
  110. 
    
  111.     name = models.CharField(max_length=255)
    
  112.     bool = models.BooleanField(default=True)
    
  113.     number = models.IntegerField(default=0, db_column="number_val")
    
  114. 
    
  115.     objects = OrderedObjectManager()
    
  116. 
    
  117. 
    
  118. class CustomIdUser(models.Model):
    
  119.     uuid = models.AutoField(primary_key=True)
    
  120. 
    
  121. 
    
  122. class CharPK(models.Model):
    
  123.     char_pk = models.CharField(max_length=100, primary_key=True)