瀏覽代碼

Fix: Optimized the get_by_id method to resolve the issue of missing exceptions and improve query performance (#6320)

Fix: Optimized the get_by_id method to resolve the issue of missing
exceptions and improve query performance

### What problem does this PR solve?

Optimized the get_by_id method to resolve the issue of missing
exceptions and improve query performance.
Optimization details:
1. The original method used a custom query method that required
concatenating SQL, which impacted performance.
2. The query method returned a list, which needed to be accessed by
index, posing a risk of index out-of-bounds errors.
3. The original method used except Exception to catch all errors, which
is not a best practice in Python programming and may lead to missing
exceptions. The get_or_none method accurately catches DoesNotExist
errors while allowing other errors to be raised normally.

### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)
- [x] Performance Improvement
tags/v0.18.0
lgphone 7 月之前
父節點
當前提交
7f80d7304d
No account linked to committer's email address
共有 1 個文件被更改,包括 3 次插入4 次删除
  1. 3
    4
      api/db/services/common_service.py

+ 3
- 4
api/db/services/common_service.py 查看文件

@@ -225,11 +225,10 @@ class CommonService:
# pid: Record ID
# Returns:
# Tuple of (success, record)
try:
obj = cls.model.query(id=pid)[0]
obj = cls.model.get_or_none(cls.model.id == pid)
if obj:
return True, obj
except Exception:
return False, None
return False, None

@classmethod
@DB.connection_context()

Loading…
取消
儲存