Django:定义从表单和视图访问的全局函数?

时间:2012-07-28 19:48:14

标签: django

我有一个函数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中都重复了。我想知道是否有办法在一个地方定义它以便访问它?

1 个答案:

答案 0 :(得分: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模块中使它成为一个功能。