我试图将外部字段的选择限制为那些看起来像对象self的其他对象。
我试过这个:
class Model1(models.Model):
entry = models.ForeignKey(Model2, limit_choices_to='get_limit_choices_to')
number = IntegerField()
def get_limit_choices_to(self):
return Model2.objects.filter(expenditure_type=self.expenditure_type)
class Model2(models.Model):
number = IntegerField()
但我收到了错误
_filter_or_exclude() argument after ** must be a mapping, not str
我不知道limit_choices_to是否是正确的方法。也许我应该在a或views中选择查询集。
错误说limit_choices_to='get_limit_choices_to'
是一种错误的引用方法,但我怎样才能正确引用该方法?我无法使用
limit_choices_to=lambda: {'model1_set': self}
,也不
limit_choices_to=lambda: {'number': number}
我正在使用Django 1.7。
答案 0 :(得分:-3)
您的功能应该在模型之前。并应返回字典
def get_limit_choices_to():
return {'entry': Model2.objects.get(number=1).id}
class Model1(models.Model):
entry = models.ForeignKey(Model2, limit_choices_to=get_limit_choices_to)
number = IntegerField()
class Model2(models.Model):
number = IntegerField()