1. from django.db import models
    
  2. 
    
  3. 
    
  4. class User(models.Model):
    
  5.     username = models.CharField(max_length=100)
    
  6.     email = models.EmailField()
    
  7. 
    
  8. 
    
  9. class UserProfile(models.Model):
    
  10.     user = models.OneToOneField(User, models.CASCADE)
    
  11.     city = models.CharField(max_length=100)
    
  12.     state = models.CharField(max_length=2)
    
  13. 
    
  14. 
    
  15. class UserStatResult(models.Model):
    
  16.     results = models.CharField(max_length=50)
    
  17. 
    
  18. 
    
  19. class UserStat(models.Model):
    
  20.     user = models.OneToOneField(User, models.CASCADE, primary_key=True)
    
  21.     posts = models.IntegerField()
    
  22.     results = models.ForeignKey(UserStatResult, models.CASCADE)
    
  23. 
    
  24. 
    
  25. class StatDetails(models.Model):
    
  26.     base_stats = models.OneToOneField(UserStat, models.CASCADE)
    
  27.     comments = models.IntegerField()
    
  28. 
    
  29. 
    
  30. class AdvancedUserStat(UserStat):
    
  31.     karma = models.IntegerField()
    
  32. 
    
  33. 
    
  34. class Image(models.Model):
    
  35.     name = models.CharField(max_length=100)
    
  36. 
    
  37. 
    
  38. class Product(models.Model):
    
  39.     name = models.CharField(max_length=100)
    
  40.     image = models.OneToOneField(Image, models.SET_NULL, null=True)
    
  41. 
    
  42. 
    
  43. class Parent1(models.Model):
    
  44.     name1 = models.CharField(max_length=50)
    
  45. 
    
  46. 
    
  47. class Parent2(models.Model):
    
  48.     # Avoid having two "id" fields in the Child1 subclass
    
  49.     id2 = models.AutoField(primary_key=True)
    
  50.     name2 = models.CharField(max_length=50)
    
  51. 
    
  52. 
    
  53. class Child1(Parent1, Parent2):
    
  54.     value = models.IntegerField()
    
  55. 
    
  56. 
    
  57. class Child2(Parent1):
    
  58.     parent2 = models.OneToOneField(Parent2, models.CASCADE)
    
  59.     value = models.IntegerField()
    
  60. 
    
  61. 
    
  62. class Child3(Child2):
    
  63.     value3 = models.IntegerField()
    
  64. 
    
  65. 
    
  66. class Child4(Child1):
    
  67.     value4 = models.IntegerField()
    
  68. 
    
  69. 
    
  70. class LinkedList(models.Model):
    
  71.     name = models.CharField(max_length=50)
    
  72.     previous_item = models.OneToOneField(
    
  73.         "self",
    
  74.         models.CASCADE,
    
  75.         related_name="next_item",
    
  76.         blank=True,
    
  77.         null=True,
    
  78.     )