django-ninja-aio-crud 2.15.0__tar.gz → 2.15.1__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.
Potentially problematic release.
This version of django-ninja-aio-crud might be problematic. Click here for more details.
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/PKG-INFO +1 -1
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/__init__.py +1 -1
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/auth.py +0 -5
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/models/serializers.py +6 -8
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/test_auth.py +2 -3
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/views/test_viewset.py +1 -1
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/.github/dependabot.yml +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/.github/workflows/coverage.yml +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/.github/workflows/docs.yml +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/.github/workflows/publish.yml +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/.gitignore +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/.pre-commit-config.yaml +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/LICENSE +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/README.md +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/CNAME +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/api/authentication.md +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/api/models/model_serializer.md +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/api/models/model_util.md +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/api/models/serializers.md +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/api/pagination.md +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/api/renderers/orjson_renderer.md +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/api/views/api_view.md +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/api/views/api_view_set.md +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/api/views/decorators.md +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/api/views/mixins.md +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/auth.md +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/contributing.md +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/extra.css +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/getting_started/images/index/foo-index-create-swagger.png +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/getting_started/images/index/foo-index-delete-swagger.png +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/getting_started/images/index/foo-index-list-swagger.png +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/getting_started/images/index/foo-index-retrieve-swagger.png +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/getting_started/images/index/foo-index-swagger.png +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/getting_started/images/index/foo-index-update-swagger.png +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/getting_started/installation.md +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/getting_started/quick_start.md +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/images/bar-swagger.png +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/images/favicon.ico +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/images/foo-swagger.png +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/images/logo.png +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/images/model_util/foo-reverse-relations-swagger.png +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/index.md +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/release_notes.md +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/requirements.txt +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/tutorial/authentication.md +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/tutorial/crud.md +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/tutorial/filtering.md +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/tutorial/model.md +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/main.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/mkdocs.yml +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/api.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/decorators/__init__.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/decorators/operations.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/decorators/views.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/exceptions.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/factory/__init__.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/factory/operations.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/helpers/__init__.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/helpers/api.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/helpers/query.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/models/__init__.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/models/utils.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/parsers.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/renders.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/schemas/__init__.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/schemas/api.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/schemas/filters.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/schemas/generics.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/schemas/helpers.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/types.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/views/__init__.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/views/api.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/views/mixins.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/pyproject.toml +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/requirements.dev.txt +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/run-local-coverage.sh +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/__init__.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/core/__init__.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/core/test_decorators.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/core/test_exceptions_api.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/core/test_renderer_parser.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/generics/__init__.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/generics/literals.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/generics/models.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/generics/request.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/generics/views.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/helpers/__init__.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/helpers/test_many_to_many_api.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/models/__init__.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/models/test_model_util.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/models/test_models_extra.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/test_app/__init__.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/test_app/models.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/test_app/schema.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/test_app/serializers.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/test_app/views.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/test_decorators.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/test_exceptions.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/test_query_util.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/test_serializers.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/test_settings.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/views/__init__.py +0 -0
- {django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/views/test_views.py +0 -0
|
@@ -107,11 +107,6 @@ class AsyncJwtBearer(HttpBearer):
|
|
|
107
107
|
"""
|
|
108
108
|
try:
|
|
109
109
|
self.dcd = jwt.decode(token, self.jwt_public, algorithms=self.algorithms)
|
|
110
|
-
except ValueError:
|
|
111
|
-
# raise AuthError(", ".join(exc.args), 401)
|
|
112
|
-
return False
|
|
113
|
-
|
|
114
|
-
try:
|
|
115
110
|
self.validate_claims(self.dcd.claims)
|
|
116
111
|
except errors.JoseError:
|
|
117
112
|
return False
|
{django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/models/serializers.py
RENAMED
|
@@ -305,9 +305,8 @@ class BaseSerializer:
|
|
|
305
305
|
"""
|
|
306
306
|
# Auto-resolve ModelSerializer with readable fields
|
|
307
307
|
if isinstance(rel_model, ModelSerializerMeta):
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
return None
|
|
308
|
+
has_readable_fields = rel_model.get_fields("read") or rel_model.get_custom_fields("read")
|
|
309
|
+
return rel_model.generate_related_s() if has_readable_fields else None
|
|
311
310
|
|
|
312
311
|
# Resolve from explicit serializer mapping
|
|
313
312
|
rel_serializers = cls._get_relations_serializers() or {}
|
|
@@ -478,11 +477,10 @@ class BaseSerializer:
|
|
|
478
477
|
return (field_name, PkFromModel[pk_field_type] | None, None)
|
|
479
478
|
|
|
480
479
|
# Special case: ModelSerializer with no readable fields should be skipped entirely
|
|
481
|
-
if isinstance(rel_model, ModelSerializerMeta)
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
return None
|
|
480
|
+
if isinstance(rel_model, ModelSerializerMeta) and not (
|
|
481
|
+
rel_model.get_fields("read") or rel_model.get_custom_fields("read")
|
|
482
|
+
):
|
|
483
|
+
return None
|
|
486
484
|
|
|
487
485
|
schema = cls._resolve_relation_schema(field_name, rel_model)
|
|
488
486
|
if not schema:
|
|
@@ -138,12 +138,11 @@ class JwtAuthTests(TestCase):
|
|
|
138
138
|
return "should-not-happen"
|
|
139
139
|
|
|
140
140
|
bearer = TB()
|
|
141
|
-
|
|
142
|
-
# Mock jwt.decode to raise ValueError to test that branch
|
|
141
|
+
|
|
143
142
|
import unittest.mock as mock
|
|
144
143
|
|
|
145
144
|
with mock.patch("ninja_aio.auth.jwt.decode") as mock_decode:
|
|
146
|
-
mock_decode.side_effect =
|
|
145
|
+
mock_decode.side_effect = errors.JoseError("invalid token")
|
|
147
146
|
result = async_to_sync(bearer.authenticate)(HttpRequest(), "fake-token")
|
|
148
147
|
self.assertFalse(result)
|
|
149
148
|
|
|
@@ -890,7 +890,7 @@ class DetailSchemaModelSerializerTestCase(TestCase):
|
|
|
890
890
|
"""Test that get_schemas returns a 4-tuple with detail schema."""
|
|
891
891
|
result = self.viewset.get_schemas()
|
|
892
892
|
self.assertEqual(len(result), 4)
|
|
893
|
-
schema_out, schema_detail,
|
|
893
|
+
schema_out, schema_detail, _, _ = result
|
|
894
894
|
self.assertIsNotNone(schema_out)
|
|
895
895
|
self.assertIsNotNone(schema_detail)
|
|
896
896
|
|
|
File without changes
|
{django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/.github/workflows/coverage.yml
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/api/models/model_serializer.md
RENAMED
|
File without changes
|
|
File without changes
|
{django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/api/models/serializers.md
RENAMED
|
File without changes
|
|
File without changes
|
{django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/api/renderers/orjson_renderer.md
RENAMED
|
File without changes
|
|
File without changes
|
{django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/api/views/api_view_set.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/getting_started/installation.md
RENAMED
|
File without changes
|
{django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/getting_started/quick_start.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/docs/tutorial/authentication.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/decorators/__init__.py
RENAMED
|
File without changes
|
{django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/decorators/operations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/ninja_aio/factory/operations.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/core/test_exceptions_api.py
RENAMED
|
File without changes
|
{django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/core/test_renderer_parser.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/helpers/test_many_to_many_api.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/models/test_model_util.py
RENAMED
|
File without changes
|
{django_ninja_aio_crud-2.15.0 → django_ninja_aio_crud-2.15.1}/tests/models/test_models_extra.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|