Django admin related Field over another model

Viewed 3633

Here are my models:

class Location(models.Model): 
    location_id = models.AutoField(primary_key=True)
    location = models.CharField(max_length=30, blank=False, null=False)

class Host(models.Model): 
    host_id = models.AutoField(primary_key=True)
    location = models.ForeignKey('Location', on_delete=models.PROTECT)
    host = models.CharField(max_length=30, blank=False, null=False)

class Device(models.Model):
    device_id = models.AutoField(primary_key=True)
    host = models.ForeignKey('Host', on_delete=models.PROTECT)
    model = models.ForeignKey('Model', on_delete=models.PROTECT)
    ip = models.GenericIPAddressField(null=True)
    name = models.CharField(max_length=30, blank=False, null=False)

And here is the DeviceAdmin class:

class DeviceAdmin(admin.ModelAdmin):
    list_display=('host','name','model', 'ip')
    list_filter=(
        ('model', admin.RelatedOnlyFieldListFilter),
        ('host', admin.RelatedOnlyFieldListFilter),
    )    
admin.site.register(Device, DeviceAdmin)

I need to see Location lookup field on Device Admin page. However, Location is related to Device over Host.

How can I display Location field to filter Device class by Location->Host on Device Admin page?

1 Answers
Related