python - 如何正确压缩此 Python IF 语句?

标签 python django

我是 Python 的新手,正在尝试寻找一种更好的编码方式。必须有一种方法,但不确定如何去做。

这两个查询本质上是一样的,所以必须要有办法减少。有没有更有效的方法来做到这一点?

        if set_date is not None:

            if is_rejected != 'true':
                query = query\
                    .filter(createddate__lte=set_date) \
                    .car_statuses(CarTow.TOWED) \
                    .order_by('-createddate')
            else:
                query = query\
                    .filter(createddate__lte=set_date) \
                    .car_statuses(CarTow.TOWED,CarTow.CONFIRMED) \
                    .order_by('-createddate')

            return query

抱歉,如果这是一个简单的问题,新手。

最佳答案

您可以通过将不同的参数拉入 if 语句并将共同的东西放在外面来简化。

if set_date is not None:
       if is_rejected != 'true':
             car_statuses = (CarTow.TOWED,)
       else:
             car_statuses = (CarTow.TOWED, CarTow.CONFIRMED)

       query = query\
           .filter(createddate__lte=set_date) \
           .car_statuses(*car_statuses) \
           .order_by('-createddate')
      return query

关于python - 如何正确压缩此 Python IF 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58193085/

相关文章:

python - 从 Django 1.7 到 1.8 的自动提交迁移

python - 限制用户多次点赞某个帖子

python - GridSearchCV 结果热图

java - 哪个操作系统更适合开发 : Debian or Ubuntu?

python - 如何在 matplotlib 中仅使用和绘制颜色条的一部分?

django rest extensions drf-extensions TypeError at/data/register() 得到了一个意外的关键字参数 'parents_query_lookups'

angularjs - 在 Angular 模块中获取 Django request.user

django - 将 App 移动到嵌套文件夹后出现 ImportError

python - 合并年和周列以在 python 中创建日期时间和排序

python - 创建依赖于变量的列表