我有一个带有整数字段的建筑物模型,用于指示建筑物的类型:
byte
我有一个BuildingUnit模型,其中外键指向Building:
class Building(models.Model):
building_type = models.PositiveIntegerField('Building Type')
我要覆盖BuildingUnit模型的 init 函数,并尝试基于整数值(建筑物的类型)来过滤外键:
class BuildingUnit(models.Model):
building_fk = models.ForeignKey(
'Building',
on_delete=models.CASCADE, verbose_name="Building"
)
它不起作用。所有建筑类型都将继续出现。当我调试和检查SQL语句时,它说语法无效。 WHERE子句显示building.building_type = 16。在我看来不错。我正在使用Postgres。如何使Django中的objects.filter()在PLPGSQL中正确评估整数?
答案 0 :(得分:0)
base_fields 是执行元类时发现的所有字段的列表。这些是实际上直接在类上声明的字段,例如原始/全局/主要定义。
字段是实际上将用于生成表单HTML以及验证用户输入的字段。它以 base_fields 的副本开头,并且在进行表单自定义时可以使用 fields ,例如向表单动态添加新字段或更改表单的值/选择。现有字段。
基本字段和字段类似于蓝图和实际建造的建筑物。蓝图是主要定义。在此进行更改后,更改将是全局的,并且是持久的。 田地就像您建造的房屋。您可以根据原始规格制造任意数量的同类房屋。但是,您可以对每所房屋进行定制,以使每座房屋都独一无二。
这对我没有用,因为我没有将过滤后的值分配给生成实际HTML输出的 field 属性。