Commit 3b54bd91 authored by John Michael T. Amador's avatar John Michael T. Amador

Merge branch 'lab02'

parents b98889ee 8a8f399b
John Michael T. Amador (206105)
BS CS - CSCI 40 E
Lab 01: Song Library
February 13, 2023
Lab 01: Song Library v2
February 20, 2023
I, John Michael T. Amador, completed the lab truthfully.
<sgd> John Michael T. Amador, February 13, 2023
\ No newline at end of file
<sgd> John Michael T. Amador, February 20, 2023
\ No newline at end of file
# Generated by Django 4.1.6 on 2023-02-20 06:25
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('About', '0001_initial'),
]
operations = [
migrations.RemoveField(
model_name='song',
name='album',
),
migrations.RemoveField(
model_name='song',
name='artist',
),
migrations.DeleteModel(
name='Album',
),
migrations.DeleteModel(
name='Artist',
),
migrations.DeleteModel(
name='Song',
),
]
from django.db import models
from django.urls import reverse
class Artist(models.Model):
artist_name = models.CharField(max_length=50)
monthly_listeners = models.IntegerField()
def __str__(self):
return '{}: {} listener(s)'.format(self.artist_name, self.monthly_listeners)
def get_absolute_url(self):
return reverse('subject_detail', args=[str(self.artist_name)])
class Album(models.Model):
album_name = models.CharField(max_length=50)
artist = models.ForeignKey(Artist, on_delete=models.CASCADE)
description = models.CharField(max_length=100)
release_date = models.CharField(max_length=50)
def __str__(self):
return '{}: {}: {}" {}'.format(self.album_name, self.artist, self.description, self.release_date)
def get_absolute_url(self):
return reverse('subject_detail', args=[str(self.album_name)])
class Song(models.Model):
song_title = models.CharField(max_length=50)
artist = models.ForeignKey(Artist, on_delete=models.CASCADE)
album = models.ForeignKey(Album, on_delete=models.CASCADE)
song_length = models.CharField(max_length=50)
def __str__(self):
return '{}: {}: {}" {} second(s)'.format(self.song_title, self.artist, self.album, self.song_length)
def get_absolute_url(self):
return reverse('subject_detail', args=[str(self.song_title)])
# Create your models here.
from django.contrib import admin
# Register your models here.
from .models import Song, Artist, Album
class SongAdmin(admin.ModelAdmin):
model = Song
list_display = ('song_title', 'song_length', 'lyrics', 'music_video')
search_fields = ('song_title', 'lyrics')
list_filter = ('song_title',)
class ArtistAdmin(admin.ModelAdmin):
model = Artist
list_display = ('artist_name', 'birth_name', 'monthly_listeners')
search_fields = ('artist_name', 'birth_name')
list_filter = ('artist_name', 'birth_name',)
class AlbumAdmin(admin.ModelAdmin):
model = Album
list_display = ('album_name', 'description', 'release_date', 'label', 'song_count')
search_fields = ('album_name', 'description', 'label')
list_filter = ('album_name',)
admin.site.register(Song, SongAdmin)
admin.site.register(Artist, ArtistAdmin)
admin.site.register(Album, AlbumAdmin)
# Generated by Django 4.1.6 on 2023-02-20 06:25
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
initial = True
dependencies = [
('Homepage', '0004_remove_song_album_remove_song_artist_delete_album_and_more'),
]
operations = [
migrations.CreateModel(
name='Album',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('album_name', models.CharField(max_length=50)),
('description', models.CharField(max_length=100)),
('release_date', models.CharField(max_length=50)),
],
),
migrations.CreateModel(
name='Artist',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('artist_name', models.CharField(max_length=50)),
('monthly_listeners', models.IntegerField()),
],
),
migrations.CreateModel(
name='Song',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('song_title', models.CharField(max_length=50)),
('song_length', models.CharField(max_length=50)),
('album', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='Homepage.album')),
('artist', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='Homepage.artist')),
],
),
migrations.AddField(
model_name='album',
name='artist',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='Homepage.artist'),
),
]
# Generated by Django 4.1.6 on 2023-02-20 06:35
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('Homepage', '0005_initial'),
]
operations = [
migrations.AddField(
model_name='album',
name='label',
field=models.CharField(default='label', max_length=50),
preserve_default=False,
),
migrations.AddField(
model_name='album',
name='song_count',
field=models.IntegerField(default=0),
preserve_default=False,
),
migrations.AddField(
model_name='artist',
name='bio',
field=models.CharField(default='bio', max_length=700),
preserve_default=False,
),
migrations.AddField(
model_name='artist',
name='birth_name',
field=models.CharField(default='birth_name', max_length=50),
preserve_default=False,
),
migrations.AddField(
model_name='song',
name='lyrics',
field=models.CharField(default='lyrics', max_length=10000),
preserve_default=False,
),
migrations.AddField(
model_name='song',
name='music_video',
field=models.BooleanField(default=True, verbose_name=True),
preserve_default=False,
),
]
# Generated by Django 4.1.6 on 2023-02-20 07:33
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('Homepage', '0006_album_label_album_song_count_artist_bio_and_more'),
]
operations = [
migrations.AlterField(
model_name='album',
name='album_name',
field=models.CharField(max_length=10000),
),
migrations.AlterField(
model_name='album',
name='description',
field=models.CharField(max_length=100000),
),
migrations.AlterField(
model_name='artist',
name='birth_name',
field=models.CharField(max_length=100000),
),
migrations.AlterField(
model_name='song',
name='music_video',
field=models.BooleanField(),
),
]
from django.db import models
from django.urls import reverse
# Create your models here.
class Artist(models.Model):
artist_name = models.CharField(max_length=50)
monthly_listeners = models.IntegerField()
birth_name = models.CharField(max_length=100000)
bio = models.CharField(max_length=700)
def __str__(self):
return '{}: {} listener(s)'.format(self.artist_name, self.monthly_listeners)
def get_absolute_url(self):
return reverse('subject_detail', args=[str(self.artist_name)])
class Album(models.Model):
album_name = models.CharField(max_length=10000)
artist = models.ForeignKey(Artist, on_delete=models.CASCADE)
description = models.CharField(max_length=100000)
release_date = models.CharField(max_length=50)
label = models.CharField(max_length=50)
song_count = models.IntegerField()
def __str__(self):
return '{}: {}: {}" {}'.format(self.album_name, self.artist, self.description, self.release_date)
def get_absolute_url(self):
return reverse('subject_detail', args=[str(self.album_name)])
class Song(models.Model):
song_title = models.CharField(max_length=50)
artist = models.ForeignKey(Artist, on_delete=models.CASCADE)
album = models.ForeignKey(Album, on_delete=models.CASCADE)
song_length = models.CharField(max_length=50)
music_video = models.BooleanField(blank=False)
lyrics = models.CharField(max_length=10000)
def __str__(self):
return '{}: {}: {}" {} second(s)'.format(self.song_title, self.artist, self.album, self.song_length)
def get_absolute_url(self):
return reverse('subject_detail', args=[str(self.song_title)])
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment