用于默认选项的Django模型管理器

时间:2012-04-09 17:16:16

标签: django django-models

我有一个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()模型?

除了模特经理之外,还有人能想出一种方法吗?

1 个答案:

答案 0 :(得分:0)

使用Q objects进行逻辑OR。