1

I'm pretty new to django and the admin module. I'm looking for a way to add on a admin class some fields that i query through a reverse relationship.

I can currently retrieve the interesting fields and put them in one column thanks to a specific function using list_diplay, but i cannot manage to create a list_display field BY returned query object:

as example, now I get as column:

|Inventory_id|   Mousqueton1 |
| 22         |    foo1,foo2  | 

and i would like to have this kind of output, to easily create filters:

|Inventory_id|   Mousqueton1 |   Mousqueton2   |
| 22         |   foo1        |    foo2         |

Here's my current models.py

class Kit(models.Model):
    inventory_id = models.CharField(max_length=20,unique=True)
    description = models.TextField(null=True)
    creation_date = models.DateField(auto_now_add=True)
    last_update = models.DateTimeField(auto_now=True)

class Mousquetons(models.Model):
    inventory_id = models.CharField(max_length=20,unique=True)
    serial = models.IntegerField(unique=False)
    description = models.TextField(null=True)
    creation_date = models.DateField(auto_now_add=True)
    last_update = models.DateTimeField(auto_now=True)
    kit = models.ForeignKey(Kit,on_delete=models.PROTECT,null=True)

and admin.py

@admin.register(Kit)
class KitAdmin(admin.ModelAdmin):
    list_display= ['inventory_id','m']

    def get_queryset(self, obj):
        qs = super(KitAdmin, self).get_queryset(obj)
        return qs.prefetch_related('mousquetons_set')

    def m(self, obj):
        return list(obj.mousquetons_set.all())

Maybe my data modeling is not the right way to perform this kind of operation, Any advice would be great. Thanks !

  • Does this answer your question? [Can "list\_display" in a Django ModelAdmin display attributes of ForeignKey fields?](https://stackoverflow.com/questions/163823/can-list-display-in-a-django-modeladmin-display-attributes-of-foreignkey-field) – Ankit Tiwari Mar 21 '22 at 18:35

0 Answers0