我得到一个" TypeError:get_query()只取1个参数(0给定)"在以下代码中:
class graph_column_format(models.Model):
def get_query(self):
return self.graph_id.query_id
graph_id = models.ForeignKey("graph", on_delete=models.CASCADE)
column = models.ForeignKey("query_column", on_delete=models.CASCADE,
limit_choices_to={"query_id": get_query()})
定义在课堂内,所以我不明白为什么我会收到这个错误。
答案 0 :(得分:2)
如果你有像
这样的模型类的实例,你只能调用该方法< graph_column_format instance >.get_query()
但是没有办法以这种方式使用limit_choices_to,但你可以在modelForm构造函数中添加过滤器,例如,
假设您在graph_column_format模型上有query_id字段
class graph_column_format_form(forms.ModelForm):
def __init__(self, *args, **kwargs):
super(MyOrderForm, self).__init__(*args, **kwargs)
if self.instance:
self.fields['query_id'].queryset = graph_column_format.objects.filter(query_id=self.instance.graph_id.query_id)