我有一个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()
模型?
除了模特经理之外,还有人能想出一种方法吗?