我试图在管理表单中反向查找两个不同的字段,彼此的父母一个。我的想法是,我有以下层次结构的下拉菜单。
区
Linea(按区域过滤)Fk = Area
传感器(由Linea过滤)Fk = Linea。
添加传感器详细信息。
现在我尝试通过为外键添加自我重复过滤器然后创建ModelAdmin来修改ModelForm以添加传感器。像这样:
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
非常感谢,希望大家度过愉快的一天。