Commit f35d1082 authored by nheoxoz's avatar nheoxoz

updated models.py

parent 107c4ea7
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