1

我有一个get_non_open_deals()包含一些业务逻辑的函数,它在表单和视图中都使用。

class CallsForm(ModelForm):       

    def __init__(self, company, *args, **kwargs):
        super(CallsForm, self).__init__(*args, **kwargs)                                        
        self.fields['deal_1'].queryset = self.get_non_open_deals(self.instance, company)        

我现在formsviews. 我想知道是否有一种方法可以在一个地方定义它以供双方访问?

4

1 回答 1

4

如果没有更多的代码示例可以使用它很难显示,但听起来这应该是模型上的一种方法。如果这需要在多个模型上工作,那么 mixin 或抽象基类可能是合适的。

class SomeModel(models.Model):
    def get_non_open_deals(self, company):
        # business logic here

class CallsForm(ModelForm):
    def __init__(self, company, *args, **kwargs):
        super(CallsForm, self).__init__(*args, **kwargs)                                        
        self.fields['deal_1'].queryset = self.instance.get_non_open_deals(company)

至少,你可以让它成为你models.py模块中的一个函数。

于 2012-07-28T19:56:54.497 回答