削除フラグが誤って付与されるバグ修正(#20) (#21)

#20

#20

#20

#020

Co-authored-by: miteruzo <miteruzo@naver.com>
Reviewed-on: #21
このコミットはPull リクエスト #21 でマージされました.
このコミットが含まれているのは:
2026-04-11 05:13:29 +09:00
コミット cb72b8dd99
5個のファイルの変更240行の追加133行の削除
+24 -5
ファイルの表示
@@ -19,13 +19,32 @@ class Model (eloquent.Model):
self,
*args: str,
) -> None:
q = self.query ()
for arg in args:
q = q.where (arg, getattr (self, arg))
row = q.first ()
row = self._find_upsert_row (*args)
if row is not None:
self.id = row.id
# pylint: disable = invalid-name
# pylint: disable = attribute-defined-outside-init
self._Model__exists = True
self.save ()
self.save ()
return
try:
self.save ()
except Exception:
row = self._find_upsert_row (*args)
if row is None:
raise
self.id = row.id
# pylint: disable = invalid-name
# pylint: disable = attribute-defined-outside-init
self._Model__exists = True
self.save ()
def _find_upsert_row (
self,
*args: str,
):
q = self.query ()
for arg in args:
q = q.where (arg, getattr (self, arg))
return q.first ()