【发布时间】:2019-06-30 17:59:27
【问题描述】:
我有一个建筑模型,其中包含一个指示建筑类型的整数字段:
class Building(models.Model):
building_type = models.PositiveIntegerField('Building Type')
我有一个 BuildingUnit 模型,其中包含对 Building 的外键引用:
class BuildingUnit(models.Model):
building_fk = models.ForeignKey(
'Building',
on_delete=models.CASCADE, verbose_name="Building"
)
我正在重写 BuildingUnit 模型的 init 函数并尝试根据整数值(建筑物的类型)过滤外键:
self.base_fields['building_fk'].queryset = BuildingUnit.objects.filter
(building_fk__building_type=16)
它不起作用。所有建筑类型都继续回归。当我调试和检查 SQL 语句时,它说语法无效。 WHERE 子句说 building.building_type=16。在我看来是对的。我正在使用 Postgres。如何使 Django 中的 objects.filter() 在 PLPGSQL 中正确评估整数?
【问题讨论】:
-
我们需要更多的上下文。该代码很好(除了它应该是字段而不是 base_fields)但我们不知道它在哪里被调用以及可能发生的其他事情。显示表单的其余部分和视图。
-
好吧,天哪,威利克斯,就在那里修好了。将 base_fields 更改为字段。我真的非常感谢你!我现在将自学fields和base_fields之间的区别
标签: django postgresql django-models foreign-keys