fastadmin 0.4.7__tar.gz → 0.4.8__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fastadmin-0.4.7 → fastadmin-0.4.8}/PKG-INFO +1 -1
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/models/base.py +1 -1
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/models/orms/django.py +1 -1
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/models/orms/ponyorm.py +12 -2
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/models/orms/sqlalchemy.py +1 -1
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/models/orms/tortoise.py +1 -1
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/models/schemas.py +1 -1
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/static/index.min.js +180 -180
- {fastadmin-0.4.7 → fastadmin-0.4.8}/pyproject.toml +1 -1
- {fastadmin-0.4.7 → fastadmin-0.4.8}/LICENSE +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/README.md +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/__init__.py +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/api/__init__.py +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/api/exceptions.py +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/api/frameworks/__init__.py +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/api/frameworks/django/__init__.py +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/api/frameworks/django/app/__init__.py +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/api/frameworks/django/app/api.py +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/api/frameworks/django/app/urls.py +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/api/frameworks/django/app/views.py +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/api/frameworks/fastapi/__init__.py +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/api/frameworks/fastapi/api.py +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/api/frameworks/fastapi/app.py +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/api/frameworks/fastapi/views.py +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/api/frameworks/flask/__init__.py +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/api/frameworks/flask/api.py +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/api/frameworks/flask/app.py +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/api/frameworks/flask/views.py +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/api/helpers.py +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/api/schemas.py +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/api/service.py +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/models/__init__.py +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/models/decorators.py +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/models/helpers.py +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/models/orms/__init__.py +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/settings.py +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/static/assets/worker-6Z7niv9l.js +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/static/assets/worker-C151k0-L.js +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/static/assets/worker-C9KPOOKD.js +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/static/assets/worker-D1fCgYB7.js +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/static/assets/worker-D3TWcJOI.js +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/static/assets/worker-DRNcaZ-V.js +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/static/assets/worker-MF2p-l5_.js +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/static/images/favicon.png +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/static/images/header-logo.svg +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/static/images/sign-in-logo.svg +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/static/index.html +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/static/index.min.css +0 -0
- {fastadmin-0.4.7 → fastadmin-0.4.8}/fastadmin/templates/index.html +0 -0
|
@@ -313,7 +313,7 @@ class BaseModelAdmin:
|
|
|
313
313
|
"""
|
|
314
314
|
raise NotImplementedError
|
|
315
315
|
|
|
316
|
-
async def orm_save_m2m_ids(self, obj: Any, field: str, ids: list[int | UUID]) -> None:
|
|
316
|
+
async def orm_save_m2m_ids(self, obj: Any, field: str, ids: list[int | str | UUID]) -> None:
|
|
317
317
|
"""This method is used to get m2m ids.
|
|
318
318
|
|
|
319
319
|
:params obj: an object.
|
|
@@ -331,7 +331,7 @@ class DjangoORMMixin:
|
|
|
331
331
|
return list(m2m_rel.all().values_list(self.get_model_pk_name(remote_model), flat=True))
|
|
332
332
|
|
|
333
333
|
@sync_to_async
|
|
334
|
-
def orm_save_m2m_ids(self, obj: Any, field: str, ids: list[int | UUID]) -> None:
|
|
334
|
+
def orm_save_m2m_ids(self, obj: Any, field: str, ids: list[int | str | UUID]) -> None:
|
|
335
335
|
"""This method is used to get m2m ids.
|
|
336
336
|
|
|
337
337
|
:params obj: an object.
|
|
@@ -408,7 +408,7 @@ class PonyORMMixin:
|
|
|
408
408
|
|
|
409
409
|
@sync_to_async
|
|
410
410
|
@db_session
|
|
411
|
-
def orm_save_m2m_ids(self, obj: Any, field: str, ids: list[int | UUID]) -> None:
|
|
411
|
+
def orm_save_m2m_ids(self, obj: Any, field: str, ids: list[int | str | UUID]) -> None:
|
|
412
412
|
"""This method is used to get m2m ids.
|
|
413
413
|
|
|
414
414
|
:params obj: an object.
|
|
@@ -425,7 +425,17 @@ class PonyORMMixin:
|
|
|
425
425
|
if ids:
|
|
426
426
|
rel_model_cls = getattr(self.model_cls, field).py_type
|
|
427
427
|
rel_key_id = self.get_model_pk_name(rel_model_cls)
|
|
428
|
-
|
|
428
|
+
rel_id_type = getattr(getattr(rel_model_cls, "_pk_", None), "py_type", None)
|
|
429
|
+
normalized_ids = []
|
|
430
|
+
for rel_id in ids:
|
|
431
|
+
normalized_id = rel_id
|
|
432
|
+
if rel_id_type:
|
|
433
|
+
try:
|
|
434
|
+
normalized_id = rel_id_type(rel_id)
|
|
435
|
+
except (ValueError, TypeError) as e:
|
|
436
|
+
raise ValueError(f"Invalid id {rel_id!r} for relation {field}.") from e
|
|
437
|
+
normalized_ids.append(normalized_id)
|
|
438
|
+
rel_objs = list(rel_model_cls.select(lambda o: getattr(o, rel_key_id) in normalized_ids))
|
|
429
439
|
getattr(obj, field).add(rel_objs)
|
|
430
440
|
flush()
|
|
431
441
|
commit()
|
|
@@ -467,7 +467,7 @@ class SqlAlchemyMixin:
|
|
|
467
467
|
rel_pk_name = self.get_model_pk_name(related_class)
|
|
468
468
|
return [getattr(related_obj, rel_pk_name) for related_obj in getattr(loaded, field, [])]
|
|
469
469
|
|
|
470
|
-
async def orm_save_m2m_ids(self, obj: Any, field: str, ids: list[int | UUID]) -> None:
|
|
470
|
+
async def orm_save_m2m_ids(self, obj: Any, field: str, ids: list[int | str | UUID]) -> None:
|
|
471
471
|
"""This method is used to get m2m ids.
|
|
472
472
|
|
|
473
473
|
:params obj: an object.
|
|
@@ -338,7 +338,7 @@ class TortoiseMixin:
|
|
|
338
338
|
remote_model = m2m_rel.remote_model
|
|
339
339
|
return await m2m_rel.all().values_list(self.get_model_pk_name(remote_model), flat=True)
|
|
340
340
|
|
|
341
|
-
async def orm_save_m2m_ids(self, obj: Any, field: str, ids: list[int | UUID]) -> None:
|
|
341
|
+
async def orm_save_m2m_ids(self, obj: Any, field: str, ids: list[int | str | UUID]) -> None:
|
|
342
342
|
"""This method is used to get m2m ids.
|
|
343
343
|
|
|
344
344
|
:params obj: an object.
|