Chris Shyi
7 years ago
4 changed files with 162 additions and 3 deletions
-
3.gitignore
-
85spotifyvis/migrations/0001_initial.py
-
68spotifyvis/models.py
-
9spotifyvis/templates/spotifyvis/user_data.html
@ -0,0 +1,85 @@ |
|||
# Generated by Django 2.0.5 on 2018-06-03 23:01 |
|||
|
|||
from django.db import migrations, models |
|||
import django.db.models.deletion |
|||
|
|||
|
|||
class Migration(migrations.Migration): |
|||
|
|||
initial = True |
|||
|
|||
dependencies = [ |
|||
] |
|||
|
|||
operations = [ |
|||
migrations.CreateModel( |
|||
name='Artist', |
|||
fields=[ |
|||
('artist_id', models.CharField(max_length=30, primary_key=True, serialize=False)), |
|||
('name', models.CharField(max_length=50, unique=True)), |
|||
('genre', models.CharField(max_length=20)), |
|||
], |
|||
options={ |
|||
'verbose_name': 'Artist', |
|||
'verbose_name_plural': 'Artists', |
|||
}, |
|||
), |
|||
migrations.CreateModel( |
|||
name='Track', |
|||
fields=[ |
|||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), |
|||
('track_id', models.CharField(max_length=30)), |
|||
('year', models.PositiveSmallIntegerField()), |
|||
('popularity', models.DecimalField(decimal_places=2, max_digits=2)), |
|||
('runtime', models.PositiveSmallIntegerField()), |
|||
('name', models.CharField(max_length=75)), |
|||
], |
|||
options={ |
|||
'verbose_name': 'Track', |
|||
'verbose_name_plural': 'Tracks', |
|||
}, |
|||
), |
|||
migrations.CreateModel( |
|||
name='User', |
|||
fields=[ |
|||
('user_id', models.CharField(max_length=30, primary_key=True, serialize=False)), |
|||
('username', models.CharField(max_length=30)), |
|||
], |
|||
options={ |
|||
'verbose_name': 'User', |
|||
'verbose_name_plural': 'Users', |
|||
}, |
|||
), |
|||
migrations.CreateModel( |
|||
name='AudioFeatures', |
|||
fields=[ |
|||
('track', models.OneToOneField(on_delete=django.db.models.deletion.CASCADE, primary_key=True, serialize=False, to='spotifyvis.Track')), |
|||
('danceability', models.DecimalField(decimal_places=2, max_digits=2)), |
|||
('energy', models.DecimalField(decimal_places=2, max_digits=2)), |
|||
('loudness', models.DecimalField(decimal_places=2, max_digits=2)), |
|||
('speechiness', models.DecimalField(decimal_places=2, max_digits=2)), |
|||
('acousticness', models.DecimalField(decimal_places=2, max_digits=2)), |
|||
('instrumentalness', models.DecimalField(decimal_places=2, max_digits=2)), |
|||
('valence', models.DecimalField(decimal_places=2, max_digits=2)), |
|||
('tempo', models.DecimalField(decimal_places=2, max_digits=2)), |
|||
], |
|||
options={ |
|||
'verbose_name': 'AudioFeatures', |
|||
'verbose_name_plural': 'AudioFeatures', |
|||
}, |
|||
), |
|||
migrations.AddField( |
|||
model_name='track', |
|||
name='artist', |
|||
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='spotifyvis.Artist'), |
|||
), |
|||
migrations.AddField( |
|||
model_name='track', |
|||
name='users', |
|||
field=models.ManyToManyField(to='spotifyvis.User'), |
|||
), |
|||
migrations.AlterUniqueTogether( |
|||
name='track', |
|||
unique_together={('track_id', 'artist')}, |
|||
), |
|||
] |
@ -1,3 +1,69 @@ |
|||
from django.db import models |
|||
|
|||
# Create your models here. |
|||
class Artist(models.Model): |
|||
|
|||
class Meta: |
|||
verbose_name = "Artist" |
|||
verbose_name_plural = "Artists" |
|||
|
|||
artist_id = models.CharField(primary_key=True, max_length=30) |
|||
# unique since only storing one genre per artist right now |
|||
name = models.CharField(unique=True, max_length=50) |
|||
genre = models.CharField(max_length=20) |
|||
|
|||
def __str__(self): |
|||
return self.name |
|||
|
|||
|
|||
class User(models.Model): |
|||
|
|||
class Meta: |
|||
verbose_name = "User" |
|||
verbose_name_plural = "Users" |
|||
|
|||
user_id = models.CharField(primary_key=True, max_length=30) |
|||
username = models.CharField(max_length=30) |
|||
|
|||
def __str__(self): |
|||
return self.username |
|||
|
|||
|
|||
class Track(models.Model): |
|||
|
|||
class Meta: |
|||
verbose_name = "Track" |
|||
verbose_name_plural = "Tracks" |
|||
unique_together = ('track_id', 'artist',) |
|||
|
|||
track_id = models.CharField(max_length=30) |
|||
artist = models.ForeignKey(Artist, on_delete=models.CASCADE) |
|||
year = models.PositiveSmallIntegerField() |
|||
popularity = models.DecimalField(decimal_places=2, max_digits=2) |
|||
runtime = models.PositiveSmallIntegerField() |
|||
name = models.CharField(max_length=75) |
|||
users = models.ManyToManyField(User) |
|||
|
|||
def __str__(self): |
|||
return self.name |
|||
|
|||
|
|||
class AudioFeatures(models.Model): |
|||
|
|||
class Meta: |
|||
verbose_name = "AudioFeatures" |
|||
verbose_name_plural = "AudioFeatures" |
|||
|
|||
track = models.OneToOneField(Track, on_delete=models.CASCADE, primary_key=True,) |
|||
danceability = models.DecimalField(decimal_places=2, max_digits=2) |
|||
energy = models.DecimalField(decimal_places=2, max_digits=2) |
|||
loudness = models.DecimalField(decimal_places=2, max_digits=2) |
|||
speechiness = models.DecimalField(decimal_places=2, max_digits=2) |
|||
acousticness = models.DecimalField(decimal_places=2, max_digits=2) |
|||
instrumentalness = models.DecimalField(decimal_places=2, max_digits=2) |
|||
valence = models.DecimalField(decimal_places=2, max_digits=2) |
|||
tempo = models.DecimalField(decimal_places=2, max_digits=2) |
|||
|
|||
def __str__(self): |
|||
return super(AudioFeatures, self).__str__() |
|||
|
|||
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue