Python Django admin双筛选器反向外键查找

Python Django admin双筛选器反向外键查找,python,django,django-admin,django-admin-filters,Python,Django,Django Admin,Django Admin Filters,我试图在管理表单中对两个不同的字段进行反向查找,其中一个字段是彼此的父字段。我的想法是我有以下层次的下拉菜单 区域 Linea(按面积过滤)Fk=面积 传感器(通过线性A过滤)Fk=线性A 添加传感器详细信息 现在,我正在尝试修改ModelForm以添加传感器,方法是为外键添加自引用过滤器,然后创建ModelAdmin。像这样: class SensorForm(forms.ModelForm): def __init__(self, *args, **kwargs):

我试图在管理表单中对两个不同的字段进行反向查找,其中一个字段是彼此的父字段。我的想法是我有以下层次的下拉菜单

区域

Linea(按面积过滤)Fk=面积

传感器(通过线性A过滤)Fk=线性A

添加传感器详细信息

现在,我正在尝试修改ModelForm以添加传感器,方法是为外键添加自引用过滤器,然后创建ModelAdmin。像这样:

class SensorForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(SensorAsignado, self).__init__(*args, **kwargs)
        self.fields['Linea'].queryset = Linea.objects.filter(no_de_linea = self.instance.linea)
        self.fields['Area'].queryset = Area.objects.filter(Linea.objects.filter(no_de_linea = self.instance.linea))

class SensorAdmin(admin.ModelAdmin):
    form = SensorForm
其思想是有两个字段,Linea和area,Linea按面积过滤,传感器按Linea过滤

以下是模型的一个片段:

class Area(models.Model):
    area_nom = models.CharField(max_length = 20)
    description = models.TextField()
    
    def __str__(self):
        return self.area_nom
    
# rack del cual fue sacada la pieza    
class Linea(models.Model):
    linea_nom = models.CharField(max_length = 20)
    area = models.ForeignKey('Area')
    description = models.TextField()
    
    def __str__(self):
        return self.linea_nom
    
# sensor del cual se sacó la lectura
class SensorAsignado(models.Model):
    sensor_nom = models.CharField(max_length = 20)
    linea = models.ForeignKey('Linea')
    sensor_tipo = models.ForeignKey('TipoDeSensor')
    
    def __str__(self):
        return self.sensor_nom
提前非常感谢,希望大家今天过得愉快