django-pfx 1.4.dev168__tar.gz → 1.4.dev170__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.
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/PKG-INFO +1 -1
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/django_pfx.egg-info/PKG-INFO +1 -1
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/fields/media_field.py +22 -22
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/.gitignore +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/.gitlab-ci.yml +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/.pre-commit-config.yaml +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/LICENSE +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/MANIFEST.in +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/README.md +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/django_pfx.egg-info/SOURCES.txt +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/django_pfx.egg-info/dependency_links.txt +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/django_pfx.egg-info/requires.txt +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/django_pfx.egg-info/top_level.txt +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/doc/Makefile +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/doc/conf.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/doc/index.rst +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/doc/source/api.views.rst +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/doc/source/authentication.md +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/doc/source/decorator.md +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/doc/source/generate_openapi.md +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/doc/source/getting_started.md +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/doc/source/internationalisation.md +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/doc/source/model.md +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/doc/source/pfx_views.md +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/doc/source/profiling.md +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/doc/source/settings.md +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/doc/source/testing.md +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/img/pfx.png +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/img/pfx.svg +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/make_messages +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/manage.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/__init__.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/__init__.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/apidoc/__init__.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/apidoc/parameters.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/apidoc/schema.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/apidoc/tags.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/apps.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/decorator/__init__.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/decorator/rest.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/default_settings.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/exceptions.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/fields/__init__.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/fields/decimal_field.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/fields/minutes_duration_field.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/fields/rich_text_field.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/http/__init__.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/http/json_response.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/locale/fr/LC_MESSAGES/django.mo +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/locale/fr/LC_MESSAGES/django.po +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/management/__init__.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/management/commands/__init__.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/management/commands/makeapidoc.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/management/commands/profile.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/middleware/__init__.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/middleware/authentication.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/middleware/locale.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/middleware/profiling.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/migrations/0001_initial.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/migrations/0002_pfxpermissionsuser.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/migrations/0003_delete_pfxpermissionsuser.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/migrations/__init__.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/migrations/operations/__init__.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/migrations/operations/permissions.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/models/__init__.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/models/abstract_pfx_base_user.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/models/cache_mixins.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/models/login_ban.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/models/not_null_fields.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/models/ordered_model_mixin.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/models/otp_user_mixin.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/models/pfx_models.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/models/pfx_user.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/models/user_filtered_queryset_mixin.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/serializers/__init__.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/serializers/json.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/settings.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/shortcuts.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/storage/__init__.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/storage/exceptions.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/storage/local_storage.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/storage/s3_storage.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/templates/registration/otp_code_email.txt +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/templates/registration/otp_code_subject.txt +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/templates/registration/password_reset_email.txt +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/templates/registration/password_reset_subject.txt +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/templates/registration/welcome_email.txt +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/templates/registration/welcome_subject.txt +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/test.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/urls.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/views/__init__.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/views/authentication_views.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/views/fields.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/views/filters_views.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/views/locale_views.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/views/media_rest_view_mixin.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/views/ordered_rest_view_mixin.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/views/parameters/__init__.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/views/parameters/date_format.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/views/parameters/groups.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/views/parameters/list_count.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/views/parameters/list_items.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/views/parameters/list_mode.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/views/parameters/list_order.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/views/parameters/list_search.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/views/parameters/media_redirect.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/views/parameters/meta_fields.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/views/parameters/meta_filters.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/views/parameters/meta_orders.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/views/parameters/subset.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/views/parameters/subset_limit.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/views/parameters/subset_offset.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/views/parameters/subset_page.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/views/parameters/subset_page_size.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/views/parameters/subset_page_subset.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/views/rest_views.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/settings/__init__.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/settings/dev.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pyproject.toml +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/requirements.txt +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/serve-doc +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/setup.cfg +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/setup.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/__init__.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/apps.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/locale/fr/LC_MESSAGES/django.po +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/migrations/0001_initial.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/migrations/0002_alter_book_cover.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/migrations/0003_book_local_file.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/migrations/__init__.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/models.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/settings/__init__.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/settings/ci.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/settings/common.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/settings/dev.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/settings/dev_custom_example.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/settings/dev_default.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/tests/__init__.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/tests/basic_api_errors.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/tests/basic_api_test.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/tests/test_api_doc.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/tests/test_api_doc_search.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/tests/test_auth_api.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/tests/test_body_mixin.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/tests/test_cache.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/tests/test_client.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/tests/test_fields_choices.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/tests/test_fields_date.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/tests/test_fields_decimal.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/tests/test_fields_minutes_duration.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/tests/test_fields_one2many.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/tests/test_fields_rich_text.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/tests/test_filters.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/tests/test_locale_api.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/tests/test_ordered_rest_view_mixin.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/tests/test_perm_tests.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/tests/test_permissions.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/tests/test_perms_api.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/tests/test_post_migrate_groups_update.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/tests/test_profiling_middleware.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/tests/test_settings.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/tests/test_shortcuts.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/tests/test_timezone_middleware.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/tests/test_tools.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/tests/test_user_queryset.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/tests/test_view_decorators.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/tests/test_view_fields.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/urls.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/views.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests_base_user/__init__.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests_base_user/migrations/0001_initial.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests_base_user/migrations/__init__.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests_base_user/settings/__init__.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests_base_user/settings/ci.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests_base_user/settings/common.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests_base_user/settings/dev.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests_base_user/settings/dev_custom_example.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests_base_user/settings/dev_default.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests_base_user/tests/__init__.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests_base_user/tests/test_api.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests_base_user/tests/test_auth_api.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests_base_user/urls.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests_base_user/views.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests_custom_user/__init__.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests_custom_user/migrations/0001_initial.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests_custom_user/migrations/__init__.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests_custom_user/models.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests_custom_user/settings/__init__.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests_custom_user/settings/ci.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests_custom_user/settings/common.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests_custom_user/settings/dev.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests_custom_user/settings/dev_custom_example.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests_custom_user/settings/dev_default.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests_custom_user/tests/__init__.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests_custom_user/tests/test_api.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests_custom_user/tests/test_auth_api.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests_custom_user/urls.py +0 -0
- {django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests_custom_user/views.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: django-pfx
|
|
3
|
-
Version: 1.4.
|
|
3
|
+
Version: 1.4.dev170
|
|
4
4
|
Summary: Django PFX is a toolkit designed to streamline the development of RESTful APIs using the Django framework.
|
|
5
5
|
Author: Hervé Martinet
|
|
6
6
|
Author-email: herve.martinet@gmail.com
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: django-pfx
|
|
3
|
-
Version: 1.4.
|
|
3
|
+
Version: 1.4.dev170
|
|
4
4
|
Summary: Django PFX is a toolkit designed to streamline the development of RESTful APIs using the Django framework.
|
|
5
5
|
Author: Hervé Martinet
|
|
6
6
|
Author-email: herve.martinet@gmail.com
|
|
@@ -19,6 +19,26 @@ def get_storage_class(class_path):
|
|
|
19
19
|
return getattr(import_module('.'.join(ps[:-1])), ps[-1])()
|
|
20
20
|
|
|
21
21
|
|
|
22
|
+
def validate_media_json(value):
|
|
23
|
+
if isinstance(value, dict):
|
|
24
|
+
missing_keys = []
|
|
25
|
+
if value.get('key'):
|
|
26
|
+
# Empty dict or empty key is allowed to save
|
|
27
|
+
# and object without file to have a pk to determine the key.
|
|
28
|
+
# When the key is set, other required keys must be present.
|
|
29
|
+
if not value.get('name'):
|
|
30
|
+
missing_keys.append('name')
|
|
31
|
+
if not value.get('content-type'):
|
|
32
|
+
missing_keys.append('content-type')
|
|
33
|
+
if not value.get('content-length'):
|
|
34
|
+
missing_keys.append('content-length')
|
|
35
|
+
if missing_keys:
|
|
36
|
+
raise ValidationError(
|
|
37
|
+
f"Missing required keys: {', '.join(missing_keys)}")
|
|
38
|
+
else:
|
|
39
|
+
raise ValidationError("Value must be a dictionary.")
|
|
40
|
+
|
|
41
|
+
|
|
22
42
|
class MediaField(models.JSONField):
|
|
23
43
|
def __init__(
|
|
24
44
|
self, *args, max_length=255, get_key=None, storage=None,
|
|
@@ -33,9 +53,8 @@ class MediaField(models.JSONField):
|
|
|
33
53
|
self.allowed_keys = DEFAULT_KEYS.union(extra_keys or set())
|
|
34
54
|
self._db_value = None
|
|
35
55
|
|
|
36
|
-
# Inject validator
|
|
37
|
-
kwargs.setdefault("validators", [])
|
|
38
|
-
kwargs["validators"].append(self.validate_keys)
|
|
56
|
+
# Inject default validator if empty
|
|
57
|
+
kwargs.setdefault("validators", [validate_media_json])
|
|
39
58
|
|
|
40
59
|
super().__init__(*args, max_length=max_length, **kwargs)
|
|
41
60
|
|
|
@@ -43,25 +62,6 @@ class MediaField(models.JSONField):
|
|
|
43
62
|
def get_default_key(obj, filename):
|
|
44
63
|
return f"{type(obj).__name__}/{obj.pk}/{filename}"
|
|
45
64
|
|
|
46
|
-
def validate_keys(self, value):
|
|
47
|
-
if isinstance(value, dict):
|
|
48
|
-
missing_keys = []
|
|
49
|
-
if value.get('key'):
|
|
50
|
-
# Empty dict or empty key is allowed to save
|
|
51
|
-
# and object without file to have a pk to determine the key.
|
|
52
|
-
# When the key is set, other required keys must be present.
|
|
53
|
-
if not value.get('name'):
|
|
54
|
-
missing_keys.append('name')
|
|
55
|
-
if not value.get('content-type'):
|
|
56
|
-
missing_keys.append('content-type')
|
|
57
|
-
if not value.get('content-length'):
|
|
58
|
-
missing_keys.append('content-length')
|
|
59
|
-
if missing_keys:
|
|
60
|
-
raise ValidationError(
|
|
61
|
-
f"Missing required keys: {', '.join(missing_keys)}")
|
|
62
|
-
else:
|
|
63
|
-
raise ValidationError("Value must be a dictionary.")
|
|
64
|
-
|
|
65
65
|
def clean_value(self, value):
|
|
66
66
|
if isinstance(value, dict):
|
|
67
67
|
return {k: v for k, v in value.items() if k in self.allowed_keys}
|
|
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
|
|
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_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/fields/minutes_duration_field.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
|
{django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/management/commands/makeapidoc.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/migrations/0002_pfxpermissionsuser.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/migrations/operations/__init__.py
RENAMED
|
File without changes
|
{django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/migrations/operations/permissions.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/models/abstract_pfx_base_user.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
|
{django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/models/user_filtered_queryset_mixin.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
|
{django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/templates/registration/welcome_email.txt
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
|
{django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/views/ordered_rest_view_mixin.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
|
{django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/views/parameters/media_redirect.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/views/parameters/meta_filters.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/views/parameters/subset_limit.py
RENAMED
|
File without changes
|
{django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/views/parameters/subset_offset.py
RENAMED
|
File without changes
|
|
File without changes
|
{django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/views/parameters/subset_page_size.py
RENAMED
|
File without changes
|
{django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/pfx/pfxcore/views/parameters/subset_page_subset.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
|
|
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_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests/tests/test_post_migrate_groups_update.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
|
{django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests_base_user/settings/dev_custom_example.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
|
{django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests_custom_user/migrations/0001_initial.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{django_pfx-1.4.dev168 → django_pfx-1.4.dev170}/tests_custom_user/settings/dev_custom_example.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|