我有一个 Django 模型,它有一个可选的外键。我以这种方式设置它,以便表包含不同的默认选项,service_types
但可以通过指定controller
外键来覆盖此选项。
现在在我看来,我有一堆看起来像这样的代码:
try:
modeService = RegressionServices.objects.get(controller=controller, service_type=SERVICE_TYPE_CONTROLLER_MODE)
except RegressionServices.DoesNotExist:
modeService = RegressionServices.objects.get(service_type=SERVICE_TYPE_CONTROLLER_MODE)
我想把它减少到一个电话,我认为 Django 模型Manager
应该是这样做的方式。本质上,它会检查控制器**kwargs
,如果存在,它基本上会执行上面的代码。我正在查看文档,只发现该get_query_set
方法通常被覆盖。重写get()
方法可以吗?我什至可以RegressionServices
在模型管理器get()
方法中访问模型吗?
除了模型经理之外,任何人都可以想到这样做的方法吗?