﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
15221	Show field's verbose name instead of related model name for M2M filterspecs	Julien Phalip	nobody	"Consider the following example:

Model:
{{{
#!python
from django.db import models
from django.contrib.auth.models import User

class Book(models.Model):
    title = models.CharField(max_length=25)
    year = models.PositiveIntegerField(null=True, blank=True)
    author = models.ForeignKey(User, related_name='books_authored', blank=True, null=True)
    contributors = models.ManyToManyField(User, related_name='books_contributed', blank=True, null=True)
}}}

Admin:
{{{
#!python
from django.contrib import admin

from .models import Book

class BookAdmin(admin.ModelAdmin):
    list_display = ('title', 'year', 'author')
    list_filter = ('year', 'author', 'contributors')
    
admin.site.register(Book, BookAdmin)
}}}

Presumably since #3400 was fixed, M2M filterspecs are using the related model's name as title. This leads the example above to display ""By user"" instead of ""By contributors"". This is a bit silly in itself but it could be even more problematic if multiple M2M filters to User were specified at the same time.

I've discussed this with DrMeers (who wrote the patch for #3400). The patch I'm attaching seems to fix the issue but we might have to investigate a bit more to see if there are cases where it wouldn't make sense to show the field's verbose name for a M2M.

The patch doesn't contain tests yet. I'm waiting to get feedback on the latest patch I've posted in #8528 which introduces a new module for filterspecs' tests. If #8529 gets checked in then writing tests for this patch will be trivial."	Bug	closed	contrib.admin	1.2	Normal	fixed		Simon Charette	Accepted	1	0	0	1	0	1
