plain 0.54.1__tar.gz → 0.55.0__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.
- {plain-0.54.1 → plain-0.55.0}/PKG-INFO +1 -1
- {plain-0.54.1 → plain-0.55.0}/plain/CHANGELOG.md +13 -0
- {plain-0.54.1 → plain-0.55.0}/plain/urls/patterns.py +2 -2
- {plain-0.54.1 → plain-0.55.0}/plain/views/README.md +3 -3
- {plain-0.54.1 → plain-0.55.0}/pyproject.toml +1 -1
- {plain-0.54.1 → plain-0.55.0}/.gitignore +0 -0
- {plain-0.54.1 → plain-0.55.0}/LICENSE +0 -0
- {plain-0.54.1 → plain-0.55.0}/README.md +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/README.md +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/__main__.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/assets/README.md +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/assets/__init__.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/assets/compile.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/assets/finders.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/assets/fingerprints.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/assets/urls.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/assets/views.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/chores/README.md +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/chores/__init__.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/chores/registry.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/cli/README.md +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/cli/__init__.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/cli/build.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/cli/changelog.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/cli/chores.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/cli/core.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/cli/docs.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/cli/formatting.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/cli/help.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/cli/output.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/cli/preflight.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/cli/print.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/cli/registry.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/cli/scaffold.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/cli/settings.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/cli/shell.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/cli/startup.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/cli/urls.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/cli/utils.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/csrf/README.md +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/csrf/middleware.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/csrf/views.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/debug.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/exceptions.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/forms/README.md +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/forms/__init__.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/forms/boundfield.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/forms/exceptions.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/forms/fields.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/forms/forms.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/http/README.md +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/http/__init__.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/http/cookie.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/http/multipartparser.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/http/request.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/http/response.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/internal/__init__.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/internal/files/__init__.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/internal/files/base.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/internal/files/locks.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/internal/files/move.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/internal/files/temp.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/internal/files/uploadedfile.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/internal/files/uploadhandler.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/internal/files/utils.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/internal/handlers/__init__.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/internal/handlers/base.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/internal/handlers/exception.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/internal/handlers/wsgi.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/internal/middleware/__init__.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/internal/middleware/headers.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/internal/middleware/https.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/internal/middleware/slash.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/json.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/logs/README.md +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/logs/__init__.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/logs/configure.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/logs/loggers.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/logs/utils.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/packages/README.md +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/packages/__init__.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/packages/config.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/packages/registry.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/paginator.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/preflight/README.md +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/preflight/__init__.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/preflight/files.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/preflight/messages.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/preflight/registry.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/preflight/security.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/preflight/urls.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/runtime/README.md +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/runtime/__init__.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/runtime/global_settings.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/runtime/user_settings.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/signals/README.md +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/signals/__init__.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/signals/dispatch/__init__.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/signals/dispatch/dispatcher.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/signals/dispatch/license.txt +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/signing.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/templates/README.md +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/templates/__init__.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/templates/core.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/templates/jinja/__init__.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/templates/jinja/environments.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/templates/jinja/extensions.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/templates/jinja/filters.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/templates/jinja/globals.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/test/README.md +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/test/__init__.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/test/client.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/test/encoding.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/test/exceptions.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/urls/README.md +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/urls/__init__.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/urls/converters.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/urls/exceptions.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/urls/resolvers.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/urls/routers.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/urls/utils.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/utils/README.md +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/utils/__init__.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/utils/cache.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/utils/crypto.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/utils/datastructures.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/utils/dateparse.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/utils/deconstruct.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/utils/decorators.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/utils/duration.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/utils/encoding.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/utils/functional.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/utils/hashable.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/utils/html.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/utils/http.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/utils/inspect.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/utils/ipv6.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/utils/itercompat.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/utils/module_loading.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/utils/regex_helper.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/utils/safestring.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/utils/text.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/utils/timesince.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/utils/timezone.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/utils/tree.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/validators.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/views/__init__.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/views/base.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/views/csrf.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/views/errors.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/views/exceptions.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/views/forms.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/views/objects.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/views/redirect.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/views/templates.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/plain/wsgi.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/tests/.gitignore +0 -0
- {plain-0.54.1 → plain-0.55.0}/tests/app/.gitignore +0 -0
- {plain-0.54.1 → plain-0.55.0}/tests/app/settings.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/tests/app/test/__init__.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/tests/app/test/default_settings.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/tests/app/urls.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/tests/conftest.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/tests/test_cli.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/tests/test_runtime.py +0 -0
- {plain-0.54.1 → plain-0.55.0}/tests/test_wsgi.py +0 -0
@@ -1,5 +1,18 @@
|
|
1
1
|
# plain changelog
|
2
2
|
|
3
|
+
## [0.55.0](https://github.com/dropseed/plain/releases/plain@0.55.0) (2025-07-22)
|
4
|
+
|
5
|
+
### What's changed
|
6
|
+
|
7
|
+
- Updated URL pattern documentation examples to use `id` instead of `pk` in URL kwargs ([b656ee6](https://github.com/dropseed/plain/commit/b656ee6e4e))
|
8
|
+
- Updated views documentation examples to use `id` instead of `pk` for DetailView, UpdateView, and DeleteView ([b656ee6](https://github.com/dropseed/plain/commit/b656ee6e4e))
|
9
|
+
|
10
|
+
### Upgrade instructions
|
11
|
+
|
12
|
+
- Update your URL patterns from `<int:pk>` to `<int:id>` in your URLconf
|
13
|
+
- Update view code that accesses `self.url_kwargs["pk"]` to use `self.url_kwargs["id"]` instead
|
14
|
+
- Replace any QuerySet filters using `pk` with `id` (e.g., `Model.objects.get(pk=1)` becomes `Model.objects.get(id=1)`)
|
15
|
+
|
3
16
|
## [0.54.1](https://github.com/dropseed/plain/releases/plain@0.54.1) (2025-07-20)
|
4
17
|
|
5
18
|
### What's changed
|
@@ -111,8 +111,8 @@ def _route_to_regex(route, is_endpoint=False):
|
|
111
111
|
"""
|
112
112
|
Convert a path pattern into a regular expression. Return the regular
|
113
113
|
expression and a dictionary mapping the capture names to the converters.
|
114
|
-
For example, 'foo/<int:
|
115
|
-
and {'
|
114
|
+
For example, 'foo/<int:id>' returns '^foo\\/(?P<id>[0-9]+)'
|
115
|
+
and {'id': <plain.urls.converters.IntConverter>}.
|
116
116
|
"""
|
117
117
|
original_route = route
|
118
118
|
parts = ["^"]
|
@@ -169,7 +169,7 @@ class ExampleDetailView(DetailView):
|
|
169
169
|
|
170
170
|
def get_object(self):
|
171
171
|
return MyObjectClass.objects.get(
|
172
|
-
|
172
|
+
id=self.url_kwargs["id"],
|
173
173
|
user=self.request.user, # Limit access
|
174
174
|
)
|
175
175
|
|
@@ -187,7 +187,7 @@ class ExampleUpdateView(UpdateView):
|
|
187
187
|
|
188
188
|
def get_object(self):
|
189
189
|
return MyObjectClass.objects.get(
|
190
|
-
|
190
|
+
id=self.url_kwargs["id"],
|
191
191
|
user=self.request.user, # Limit access
|
192
192
|
)
|
193
193
|
|
@@ -201,7 +201,7 @@ class ExampleDeleteView(DeleteView):
|
|
201
201
|
|
202
202
|
def get_object(self):
|
203
203
|
return MyObjectClass.objects.get(
|
204
|
-
|
204
|
+
id=self.url_kwargs["id"],
|
205
205
|
user=self.request.user, # Limit access
|
206
206
|
)
|
207
207
|
|
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
|
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
|
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
|
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
|