1. from django.db import models
    
  2. 
    
  3. 
    
  4. class Article(models.Model):
    
  5.     headline = models.CharField(max_length=100)
    
  6.     pub_date = models.DateField()
    
  7.     expire_date = models.DateField()
    
  8. 
    
  9.     class Meta:
    
  10.         get_latest_by = "pub_date"
    
  11. 
    
  12. 
    
  13. class Person(models.Model):
    
  14.     name = models.CharField(max_length=30)
    
  15.     birthday = models.DateField()
    
  16.     # Note that this model doesn't have "get_latest_by" set.
    
  17. 
    
  18. 
    
  19. # Ticket #23555 - model with an intentionally broken QuerySet.__iter__ method.
    
  20. 
    
  21. 
    
  22. class IndexErrorQuerySet(models.QuerySet):
    
  23.     """
    
  24.     Emulates the case when some internal code raises an unexpected
    
  25.     IndexError.
    
  26.     """
    
  27. 
    
  28.     def __iter__(self):
    
  29.         raise IndexError
    
  30. 
    
  31. 
    
  32. class IndexErrorArticle(Article):
    
  33.     objects = IndexErrorQuerySet.as_manager()