Python Django admin双筛选器反向外键查找
我试图在管理表单中对两个不同的字段进行反向查找,其中一个字段是彼此的父字段。我的想法是我有以下层次的下拉菜单 区域 Linea(按面积过滤)Fk=面积 传感器(通过线性A过滤)Fk=线性A 添加传感器详细信息 现在,我正在尝试修改ModelForm以添加传感器,方法是为外键添加自引用过滤器,然后创建ModelAdmin。像这样: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):
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
提前非常感谢,希望大家今天过得愉快