以下是我的模型:
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)
以下是 DeviceAdmin
类:
class DeviceAdmin(admin.ModelAdmin):
list_display=('host','name','model', 'ip')
list_filter=(
('model', admin.RelatedOnlyFieldListFilter),
('host', admin.RelatedOnlyFieldListFilter),
)
admin.site.register(Device, DeviceAdmin)
我需要在设备管理员页面上看到位置查找字段。然而,位置
与主机
相关联而非设备
。
如何显示位置
字段以通过位置->主机筛选设备类别并在设备管理员页面上呈现?
django-autocomplete-light
。这可以让你使用自动完成来呈现选择小部件。因此,您将能够输入位置名称以过滤匹配的主机。 - Antoine Pinsard