fix:artist_credit django admin filtering

This commit is contained in:
Petitminion 2025-03-11 20:04:44 +01:00
parent a9927df89c
commit 6d4d4aee67
1 changed files with 17 additions and 0 deletions

View File

@ -26,6 +26,15 @@ class AlbumAdmin(admin.ModelAdmin):
search_fields = ["title", "mbid"]
list_select_related = True
def formfield_for_manytomany(self, db_field, request, **kwargs):
if db_field.name == "artist_credit":
object_id = request.resolver_match.kwargs.get("object_id")
kwargs["queryset"] = models.ArtistCredit.objects.filter(
albums__id=object_id
)
return super().formfield_for_foreignkey(db_field, request, **kwargs)
@admin.register(models.Track)
class TrackAdmin(admin.ModelAdmin):
@ -35,6 +44,14 @@ class TrackAdmin(admin.ModelAdmin):
def artist(self, obj):
return obj.get_artist_credit_string
def formfield_for_manytomany(self, db_field, request, **kwargs):
if db_field.name == "artist_credit":
object_id = request.resolver_match.kwargs.get("object_id")
kwargs["queryset"] = models.ArtistCredit.objects.filter(
tracks__id=object_id
)
return super().formfield_for_foreignkey(db_field, request, **kwargs)
@admin.register(models.TrackActor)
class TrackActorAdmin(admin.ModelAdmin):