Django TabularInline and field from related models

using django admin on an existing database i set up a many to many relation between "Contact" and "Groupe" based on a intermediate model "Contactgroup".

In the "Group" Admin form i add a tabular in line to show all Contactgroup. It's OK but i get on error while adding fields from related Contact.

model.py

class Contact(models.Model):
    id = models.IntegerField(primary_key=True)
    e_mail = models.TextField()
    ...

class Contactgroup(models.Model):
    id = models.IntegerField(primary_key=True)
    id_contact = models.ForeignKey(Contact, on_delete=models.CASCADE,db_column="id_contact",
                                   blank=False, null=False, verbose_name='Contact')
    id_groupe = models.ForeignKey(Groupe, on_delete=models.CASCADE,db_column="id_groupe",
                                   blank=False, null=False, verbose_name='Groupe')

admin.py

class MyContactgroupInline(admin.TabularInline):
    model = Contactgroup
    fields = ['id','id_contact']

MyGroupeModelAdmin.inlines = [MyContactgroupInline,]

Then i try to add the Contact e_mail field :

class MyContactgroupInline(admin.TabularInline):
    model = Contactgroup
    fields = ['id','id_contact', 'id_contact__e_mail']

MyGroupeModelAdmin.inlines = [MyContactgroupInline,]

I get :

Unknown field(s) (id_contact__e_mail) specified for Contactgroup

i finnaly used a new method in class MyContactgroupInline(admin.TabularInline):

@admin.display(description='E-mail')
def getEmail(self, item):
    return item.id_contact.e_mail
Back to Top