Guest User

Untitled

a guest
Jul 21st, 2018
91
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.56 KB | None | 0 0
  1. class CommonAbstractModel(models.Model):
  2. """
  3. Common ABC for most models.
  4. Provides created/updated_at, created/updated_by, and active/inactive status.
  5. """
  6. created_at = models.DateTimeField(
  7. default=datetime.datetime.now(), editable=False)
  8. updated_at = AutoDateTimeField(editable=False)
  9. created_by = models.ForeignKey(User, blank=True, editable=False,
  10. related_name="creates")
  11. updated_by = models.ForeignKey(User, blank=True, editable=False,
  12. related_name="updates")
  13. active = models.BooleanField(default=True)
  14.  
  15. class LibraryAbstractModel(models.Model):
  16. """ generic class for library items """
  17. title = models.CharField(max_length=255)
  18. slug = models.SlugField()
  19. description = models.TextField()
  20. download = models.BooleanField(default=False)
  21. share = models.BooleanField(default=False)
  22. email = models.BooleanField(default=False)
  23. embed = models.BooleanField(default=False)
  24. library_set = models.ForeignKey('LibrarySet',
  25. blank=True, related_name='members')
  26. keywords = TagField()
  27. publisher = models.ForeignKey('Publisher',
  28. blank=True, related_name='publications')
  29. authors = models.ManyToManyField('Author',
  30. blank=True, related_name='publications')
  31.  
  32. class Audio(CommonAbstractModel, LibraryAbstractModel):
  33. """ Audio items in the library """
  34. runtime = models.CharField(max_length=255)
  35. transcript = models.TextField()
  36.  
  37. class LibrarySet(CommonAbstractModel):
  38. """ Set of materials in the library """
  39. title = models.CharField(max_length=255)
  40. slug = models.SlugField()
Add Comment
Please, Sign In to add comment