我有一个函数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)
我现在在forms
和views
中都重复了。我想知道是否有办法在一个地方定义它以便访问它?
答案 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
模块中使它成为一个功能。