Форум сайта python.su
Есть три модели:
class Place(models.Model): place_id = models.AutoField(primary_key=True) place = models.CharField(max_length=10, null=False) class Host(models.Model): host_id = models.AutoField(primary_key=True) place = models.ForeignKey('Place', 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)
class DeviceAdmin(admin.ModelAdmin): list_display=('host', 'name', 'model', 'ip', 'slots') list_filter = ( 'host__place', ('host', admin.RelatedOnlyFieldListFilter), ('model', admin.RelatedOnlyFieldListFilter), ) def host_place(self, instance): return instance.host.place host_location.short_description = 'Place' host_location.admin_order_field = 'host__place' admin.site.register(Device, DeviceAdmin)
Офлайн