Advertisement
Guest User

Untitled

a guest
Jun 28th, 2017
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.54 KB | None | 0 0
  1. # -*- coding: utf-8 -*-
  2.  
  3. from django.db import models
  4.  
  5. class Url(models.Model):
  6. url = models.URLField()
  7. active = models.BooleanField(default=False) # Si es la URL a usar
  8. date = models.DateTimeField() # Fecha en que se añade URL
  9. # Optativo:
  10. comments = models.TextField(blank=True, null=True)
  11. duration = models.IntegerField(blank=True, null=True) # Solo en canciones (seg.)
  12. def __unicode__(self):
  13. return self.url
  14.  
  15. class Genre(models.Model):
  16. name = models.CharField(max_length=64) # Nombre del género
  17. # Optativo:
  18. bio = models.TextField(blank=True, null=True)
  19. similar = models.ManyToManyField(Genre, blank=True, null=True) # Géneros parecidos
  20. fathers = models.ManyToManyField(Genre, blank=True, null=True) # Se basa en...
  21. def __unicode__(self):
  22. return self.name
  23.  
  24. class Artist(models.Model):
  25. name = models.CharField(max_length=64) # Nombre del grupo/artista
  26. # Optativo:
  27. photo = models.ManyToManyField(Url, blank=True, null=True) # Foto del grupo/artista
  28. date = models.DateField(blank=True, null=True) # Año/Década al que pertenece
  29. bio = models.TextField(blank=True, null=True)
  30. genre = models.ManyToManyField(Genre, blank=True, null=True) # Género musical
  31. def __unicode__(self):
  32. return self.name
  33.  
  34. class ArtistStats(models.Model):
  35. name = models.ForeignKey(Artist)
  36. listened = models.IntegerField(default=0) # n. veces escuchado.
  37. favorite = models.BooleanField(default=False) # Si está marcada como favorita
  38. def __unicode__(self):
  39. return self.name
  40.  
  41. class Album(models.Model):
  42. name = models.CharField(max_length=64) # Nombre del albúm
  43. artist = models.ManyToManyField(Artist)
  44. # Optativo:
  45. cover = models.ManyToManyField(Url, blank=True, null=True) # URL Carátula
  46. date = models.DateTimeField(blank=True, null=True) # Fecha publicación
  47. bio = models.TextField(blank=True, null=True)
  48. genre = models.ManyToManyField(Genre, blank=True, null=True) # Género musical
  49. def __unicode__(self):
  50. return self.name
  51.  
  52. class AlbumStats(models.Model):
  53. name = models.ForeignKey(Album)
  54. listened = models.IntegerField(default=0) # n. veces escuchado.
  55. favorite = models.BooleanField(default=False) # Si está marcada como favorita
  56. def __unicode__(self):
  57. return self.name
  58.  
  59. class Track(models.Model):
  60. name = models.CharField(max_length=128) # Nombre de canción
  61. url = models.ManyToManyField(Url)
  62. listened = models.IntegerField(default=0) # n. veces escuchado.
  63. album = models.ManyToManyField(Album) # Albúms a los que pertenece
  64. # Optativo:
  65. lyric = models.TextField(blank=True, null=True)
  66. genre = models.ManyToManyField(Genre, blank=True, null=True) # Género musical
  67. def __unicode__(self):
  68. return self.name
  69.  
  70. class TrackStats(models.Model):
  71. name = models.ForeignKey(Track)
  72. listened = models.IntegerField(default=0) # n. veces escuchado.
  73. favorite = models.BooleanField(default=False) # Si está marcada como favorita
  74. def __unicode__(self):
  75. return self.name
  76.  
  77. class User(models.Model):
  78. name = models.CharField(max_length=32) # Nombre de usuario
  79. url = models.ManyToManyField(Url)
  80. date = models.DateTimeField() # Desde cuando es miembro
  81. # Estadísticas
  82. trackstats = TrackStats(TrackStats, blank=True, null=True)
  83. albumstats = TrackStats(AlbumStats, blank=True, null=True)
  84. artiststats = TrackStats(ArtistStats, blank=True, null=True)
  85. # Optativo:
  86. avatar = models.URLField()
  87. comments = models.TextField(blank=True, null=True)
  88. email = models.EmailField(blank=True, null=True)
  89. def __unicode__(self):
  90. return self.name
  91.  
  92. class PlaylistType(models.Model):
  93. name = models.CharField(max_length=32)
  94. public = models.BooleanField(default=False)
  95. open = models.BooleanField(default=False)
  96. def __unicode__(self):
  97. return self.name
  98.  
  99. class PlaylistUser(models.Model):
  100. user = models.ForeignKey(User)
  101. ower = models.BooleanField(default=False)
  102. admin = models.BooleanField(default=False)
  103. def __unicode__(self):
  104. return self.user.name
  105.  
  106. class Playlist(models.Model):
  107. name = models.CharField(max_length=64) # Nombre de playlist
  108. tracks = models.ManyToManyField(Track)
  109. date = models.DateTimeField() # Última revisión
  110. playlisttype = models.ForeignKey(PlaylistType)
  111. users = models.ManyToManyField(PlaylistUser)
  112. # Optativo:
  113. genre = models.ManyToManyField(Genre, blank=True, null=True) # Género musical
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement