我有一个问题,我反复使用相同的代码(保存项目,而不是该项目的项目交易)。
所以我想也许我需要一个模型管理器来帮助我解决这个问题,而且我对django没有很多经验,所以我想知道你是如何处理这类问题的。
我的想法是创建一个类似于:
的InventoryManagerclass InventoryManager(models.Manager):
def create_item(self, **kwargs):
#
def create_item_trans(self, item, **kwargs):
pass
def create_item_with_trans(self, **kwargs):
# create item
# create item_trans
# return item with item_trans
但是在create_item_with_trans中,我没有办法发送 kwargs,因为** create_item 加入不同的kwargs, create_item_transaction 接受不同的** kwargs
答案 0 :(得分:0)
我想象这样的事情:
def create_item(self, **kwargs):
# kwargs = {'item_attr1': '', 'item_attr2': ''}
def create_item_trans(self, item, **kwargs):
# kwargs = {'item_pk': 1, 'trans_attr1': '', 'trans_attr2': ''}
def create_item_with_trans(self, **kwargs):
# kwargs = {'item_attr1': '', 'item_attr2': '', 'transaction': {'trans_attr1': '', 'trans_attr2': ''}}
trans_attrs = kwargs.pop('transaction')
item = self.create_item(**kwargs)
trans = self.create_trans(item_pk=item.pk, **trans_attrs)
# return item with item_trans