2015-03-03 09:01:51 +00:00
|
|
|
from django.db import models
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Genre(models.Model):
|
|
|
|
|
title = models.CharField(max_length=50)
|
|
|
|
|
|
2017-11-25 16:23:36 +00:00
|
|
|
class Meta:
|
|
|
|
|
ordering = ('title',)
|
|
|
|
|
|
2015-03-03 09:01:51 +00:00
|
|
|
def __str__(self):
|
|
|
|
|
return self.title
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Artist(models.Model):
|
2018-06-30 12:56:32 +00:00
|
|
|
title = models.CharField(max_length=50, unique=True)
|
2015-03-03 09:01:51 +00:00
|
|
|
genres = models.ManyToManyField(Genre)
|
|
|
|
|
|
2017-11-25 16:23:36 +00:00
|
|
|
class Meta:
|
|
|
|
|
ordering = ('title',)
|
|
|
|
|
|
2015-03-03 09:01:51 +00:00
|
|
|
def __str__(self):
|
|
|
|
|
return self.title
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class Album(models.Model):
|
|
|
|
|
title = models.CharField(max_length=255)
|
2017-04-14 09:56:52 +00:00
|
|
|
artist = models.ForeignKey(Artist, on_delete=models.CASCADE)
|
2015-09-16 09:02:44 +00:00
|
|
|
featured_artists = models.ManyToManyField(Artist, blank=True, related_name='featured_album_set')
|
2017-04-14 09:56:52 +00:00
|
|
|
primary_genre = models.ForeignKey(Genre, on_delete=models.CASCADE, blank=True, null=True,
|
|
|
|
|
related_name='primary_album_set')
|
2015-09-16 09:02:44 +00:00
|
|
|
genres = models.ManyToManyField(Genre)
|
2015-03-03 09:01:51 +00:00
|
|
|
|
2017-11-25 16:23:36 +00:00
|
|
|
class Meta:
|
|
|
|
|
ordering = ('title',)
|
|
|
|
|
|
2015-03-03 09:01:51 +00:00
|
|
|
def __str__(self):
|
|
|
|
|
return self.title
|
2017-04-11 11:28:39 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class Country(models.Model):
|
|
|
|
|
name = models.CharField(max_length=255)
|
|
|
|
|
|
2017-11-25 16:23:36 +00:00
|
|
|
class Meta:
|
|
|
|
|
ordering = ('name',)
|
|
|
|
|
|
2017-04-11 11:28:39 +00:00
|
|
|
def __str__(self):
|
|
|
|
|
return self.name
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class City(models.Model):
|
|
|
|
|
name = models.CharField(max_length=255)
|
|
|
|
|
country = models.ForeignKey('Country', related_name="cities", on_delete=models.CASCADE)
|
|
|
|
|
|
2017-11-25 16:23:36 +00:00
|
|
|
class Meta:
|
|
|
|
|
ordering = ('name',)
|
|
|
|
|
|
2017-04-11 11:28:39 +00:00
|
|
|
def __str__(self):
|
|
|
|
|
return self.name
|
2018-06-30 12:56:32 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
class Groupie(models.Model):
|
|
|
|
|
obsession = models.ForeignKey(Artist, to_field='title', on_delete=models.CASCADE)
|