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) John Michael T. Amador (206105)
BS CS - CSCI 40 E BS CS - CSCI 40 E
Lab 01: Song Library Lab 01: Song Library v2
February 13, 2023 February 20, 2023
I, John Michael T. Amador, completed the lab truthfully. I, John Michael T. Amador, completed the lab truthfully.
<sgd> John Michael T. Amador, February 13, 2023 <sgd> John Michael T. Amador, February 20, 2023
\ No newline at end of file \ 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.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()
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)])
from django.contrib import admin from django.contrib import admin
# Register your models here. # 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.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