我有一个带外国人的django模型。我想依赖于该模型的另一个字段的内容来限制它的选择。
此代码有效:
class PhysicalProperty(models.Model):
property_quantity = models.ForeignKey(Quantity)
default_unit = models.ForeignKey(MeasurementUnits, limit_choices_to = {'quantity': 1 )
但它需要来自MeasurementUnits的所有记录,其中MeasurementUnits.quantity = 1.我需要将查询设置为MeasurementUnits.quantity = PhysicalProperty.property_quantity。
此代码无效
class PhysicalProperty(models.Model):
property_quantity = models.ForeignKey(Quantity)
default_unit = models.ForeignKey(MeasurementUnits, limit_choices_to = {'quantity': property_quantity )
答案 0 :(得分:0)
你不能在课堂上使用自我。 self适用于类的实例。
你可以使用init方法
class PhysicalProperty(models.Model):
property_quantity = models.ForeignKey(Quantity)
default_unit = models.ForeignKey(MeasurementUnits)
def __init__(self, *args, **kwargs)
super(self, PhysicalProperty).__init__(*args, **kwargs)
self.default_unit = self.property_quantity
这样,每次执行physical_property = PhysicalProperty()
时,physical_property.default_unit
都会与同一对象的property_quantity相同。