Commit c3d7687d authored by Nheo Samson's avatar Nheo Samson 🎸

Merge branch 'lab02' into 'main'

updated models.py and admin.py

See merge request !1
parents 107c4ea7 f35d1082
No preview for this file type
from django.contrib import admin
from .models import Artist, Album, Song
# Register your models here.
class AlbumInline(admin.TabularInline):
model = Album
class SongInline(admin.TabularInline):
model = Song
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')
inlines = [AlbumInline, SongInline, ]
fieldsets = [
('Artist Data', {
'fields': [
('artist_name', 'birth_name'),
'monthly_listeners'
]
}),
]
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',)
class SongAdmin(admin.ModelAdmin):
model = Song
list_display = ('song_title',
'song_length',
'lyrics',
'music_video')
search_fields = ('song_title', 'lyrics')
list_filter = ('song_title',)
admin.site.register(Artist, ArtistAdmin)
admin.site.register(Album, AlbumAdmin)
admin.site.register(Song, SongAdmin)
# Generated by Django 3.2 on 2023-02-21 07:12
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
('homepage', '0001_initial'),
]
operations = [
migrations.AddField(
model_name='album',
name='label',
field=models.CharField(blank=True, max_length=100),
),
migrations.AddField(
model_name='album',
name='song_count',
field=models.IntegerField(default='0000000'),
),
migrations.AddField(
model_name='artist',
name='bio',
field=models.CharField(blank=True, max_length=700),
),
migrations.AddField(
model_name='artist',
name='birth_name',
field=models.CharField(blank=True, max_length=50),
),
migrations.AddField(
model_name='song',
name='lyrics',
field=models.CharField(blank=True, max_length=8000),
),
migrations.AddField(
model_name='song',
name='music_video',
field=models.BooleanField(default=None),
),
migrations.AlterField(
model_name='album',
name='artist',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='album_artist', to='homepage.artist'),
),
migrations.AlterField(
model_name='song',
name='album',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='song_album', to='homepage.album'),
),
migrations.AlterField(
model_name='song',
name='artist',
field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='song_artist', to='homepage.artist'),
),
]
......@@ -4,17 +4,44 @@ from django.db import models
class Artist(models.Model):
artist_name = models.CharField(max_length=50)
monthly_listeners = models.IntegerField()
birth_name = models.CharField(max_length=50, blank=True)
bio = models.CharField(max_length=700, blank=True)
def __str__(self):
return '{} aka {}'.format(self.artist_name, self.birth_name)
class Album(models.Model):
album_name = models.CharField(max_length=100)
artist = models.ForeignKey(Artist, on_delete=models.CASCADE)
artist = models.ForeignKey(
Artist,
on_delete=models.CASCADE,
related_name='album_artist'
)
description = models.CharField(max_length=1000)
release_date = models.CharField(max_length=50)
label = models.CharField(max_length=100, blank=True)
song_count = models.IntegerField(default='0000000')
def __str__(self):
return '{}'.format(self.album_name)
class Song(models.Model):
song_title = models.CharField(max_length=100)
artist = models.ForeignKey(Artist, on_delete=models.CASCADE)
album = models.ForeignKey(Album, on_delete=models.CASCADE)
artist = models.ForeignKey(
Artist,
on_delete=models.CASCADE,
related_name='song_artist'
)
album = models.ForeignKey(
Album,
on_delete=models.CASCADE,
related_name='song_album')
song_length = models.IntegerField()
music_video = models.BooleanField(default=None)
lyrics = models.CharField(max_length=8000, blank=True)
def __str__(self):
return '{} - {}'.format(self.song_title, self.artist)
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