2016-01-22 56 views
1

我得到一個「類型錯誤:get_query()恰恰1個參數(0給出)」以下代碼:Django模型類中的函數沒有采用自變量?

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()}) 

定義在類中,所以我不明白爲什麼我得到這個錯誤。

回答

2

你可以只能夠調用的方法,如果你有一個模型類的實例像

< graph_column_format instance >.get_query() 

但是沒有辦法以這種方式使用limit_choices_to,但你可以的ModelForm構造函數中添加過濾器像,

假設你已經query_id上graph_column_format模型場

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)