1. from django.db import models
    
  2. 
    
  3. 
    
  4. class Entity(models.Model):
    
  5.     pass
    
  6. 
    
  7. 
    
  8. class Country(Entity):
    
  9.     name = models.CharField(max_length=30)
    
  10. 
    
  11. 
    
  12. class EUCountry(Country):
    
  13.     join_date = models.DateField()
    
  14. 
    
  15. 
    
  16. class City(models.Model):
    
  17.     name = models.CharField(max_length=30)
    
  18.     country = models.ForeignKey(Country, models.CASCADE)
    
  19. 
    
  20. 
    
  21. class EUCity(models.Model):
    
  22.     name = models.CharField(max_length=30)
    
  23.     country = models.ForeignKey(EUCountry, models.CASCADE)
    
  24. 
    
  25. 
    
  26. class CountryProxy(Country):
    
  27.     class Meta:
    
  28.         proxy = True
    
  29. 
    
  30. 
    
  31. class CountryProxyProxy(CountryProxy):
    
  32.     class Meta:
    
  33.         proxy = True
    
  34. 
    
  35. 
    
  36. class CityCountryProxy(models.Model):
    
  37.     country = models.ForeignKey(CountryProxyProxy, models.CASCADE)
    
  38. 
    
  39. 
    
  40. class Person(models.Model):
    
  41.     name = models.CharField(max_length=30)
    
  42.     born = models.ForeignKey(City, models.CASCADE, related_name="+")
    
  43.     died = models.ForeignKey(City, models.CASCADE, related_name="+")
    
  44. 
    
  45. 
    
  46. class PersonProfile(models.Model):
    
  47.     person = models.OneToOneField(Person, models.CASCADE, related_name="profile")