plain.models 0.49.0__tar.gz → 0.49.2__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.
Files changed (136) hide show
  1. {plain_models-0.49.0 → plain_models-0.49.2}/.gitignore +1 -0
  2. {plain_models-0.49.0 → plain_models-0.49.2}/PKG-INFO +1 -1
  3. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/CHANGELOG.md +20 -0
  4. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/base.py +3 -1
  5. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/fields/related_descriptors.py +3 -3
  6. {plain_models-0.49.0 → plain_models-0.49.2}/pyproject.toml +1 -1
  7. {plain_models-0.49.0 → plain_models-0.49.2}/LICENSE +0 -0
  8. {plain_models-0.49.0 → plain_models-0.49.2}/README.md +0 -0
  9. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/AGENTS.md +0 -0
  10. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/README.md +0 -0
  11. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/__init__.py +0 -0
  12. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/aggregates.py +0 -0
  13. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/__init__.py +0 -0
  14. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/base/__init__.py +0 -0
  15. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/base/base.py +0 -0
  16. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/base/client.py +0 -0
  17. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/base/creation.py +0 -0
  18. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/base/features.py +0 -0
  19. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/base/introspection.py +0 -0
  20. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/base/operations.py +0 -0
  21. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/base/schema.py +0 -0
  22. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/base/validation.py +0 -0
  23. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/ddl_references.py +0 -0
  24. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/mysql/__init__.py +0 -0
  25. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/mysql/base.py +0 -0
  26. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/mysql/client.py +0 -0
  27. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/mysql/compiler.py +0 -0
  28. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/mysql/creation.py +0 -0
  29. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/mysql/features.py +0 -0
  30. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/mysql/introspection.py +0 -0
  31. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/mysql/operations.py +0 -0
  32. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/mysql/schema.py +0 -0
  33. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/mysql/validation.py +0 -0
  34. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/postgresql/__init__.py +0 -0
  35. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/postgresql/base.py +0 -0
  36. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/postgresql/client.py +0 -0
  37. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/postgresql/creation.py +0 -0
  38. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/postgresql/features.py +0 -0
  39. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/postgresql/introspection.py +0 -0
  40. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/postgresql/operations.py +0 -0
  41. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/postgresql/schema.py +0 -0
  42. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/sqlite3/__init__.py +0 -0
  43. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/sqlite3/_functions.py +0 -0
  44. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/sqlite3/base.py +0 -0
  45. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/sqlite3/client.py +0 -0
  46. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/sqlite3/creation.py +0 -0
  47. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/sqlite3/features.py +0 -0
  48. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/sqlite3/introspection.py +0 -0
  49. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/sqlite3/operations.py +0 -0
  50. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/sqlite3/schema.py +0 -0
  51. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backends/utils.py +0 -0
  52. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backups/__init__.py +0 -0
  53. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backups/cli.py +0 -0
  54. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backups/clients.py +0 -0
  55. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/backups/core.py +0 -0
  56. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/cli.py +0 -0
  57. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/config.py +0 -0
  58. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/connections.py +0 -0
  59. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/constants.py +0 -0
  60. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/constraints.py +0 -0
  61. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/database_url.py +0 -0
  62. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/db.py +0 -0
  63. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/default_settings.py +0 -0
  64. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/deletion.py +0 -0
  65. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/entrypoints.py +0 -0
  66. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/enums.py +0 -0
  67. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/exceptions.py +0 -0
  68. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/expressions.py +0 -0
  69. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/fields/__init__.py +0 -0
  70. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/fields/json.py +0 -0
  71. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/fields/mixins.py +0 -0
  72. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/fields/related.py +0 -0
  73. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/fields/related_lookups.py +0 -0
  74. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/fields/related_managers.py +0 -0
  75. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/fields/reverse_related.py +0 -0
  76. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/forms.py +0 -0
  77. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/functions/__init__.py +0 -0
  78. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/functions/comparison.py +0 -0
  79. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/functions/datetime.py +0 -0
  80. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/functions/math.py +0 -0
  81. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/functions/mixins.py +0 -0
  82. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/functions/text.py +0 -0
  83. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/functions/window.py +0 -0
  84. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/indexes.py +0 -0
  85. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/lookups.py +0 -0
  86. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/migrations/__init__.py +0 -0
  87. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/migrations/autodetector.py +0 -0
  88. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/migrations/exceptions.py +0 -0
  89. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/migrations/executor.py +0 -0
  90. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/migrations/graph.py +0 -0
  91. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/migrations/loader.py +0 -0
  92. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/migrations/migration.py +0 -0
  93. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/migrations/operations/__init__.py +0 -0
  94. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/migrations/operations/base.py +0 -0
  95. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/migrations/operations/fields.py +0 -0
  96. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/migrations/operations/models.py +0 -0
  97. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/migrations/operations/special.py +0 -0
  98. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/migrations/optimizer.py +0 -0
  99. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/migrations/questioner.py +0 -0
  100. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/migrations/recorder.py +0 -0
  101. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/migrations/serializer.py +0 -0
  102. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/migrations/state.py +0 -0
  103. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/migrations/utils.py +0 -0
  104. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/migrations/writer.py +0 -0
  105. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/options.py +0 -0
  106. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/otel.py +0 -0
  107. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/preflight.py +0 -0
  108. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/query.py +0 -0
  109. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/query_utils.py +0 -0
  110. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/registry.py +0 -0
  111. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/sql/__init__.py +0 -0
  112. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/sql/compiler.py +0 -0
  113. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/sql/constants.py +0 -0
  114. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/sql/datastructures.py +0 -0
  115. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/sql/query.py +0 -0
  116. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/sql/subqueries.py +0 -0
  117. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/sql/where.py +0 -0
  118. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/test/__init__.py +0 -0
  119. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/test/pytest.py +0 -0
  120. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/test/utils.py +0 -0
  121. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/transaction.py +0 -0
  122. {plain_models-0.49.0 → plain_models-0.49.2}/plain/models/utils.py +0 -0
  123. {plain_models-0.49.0 → plain_models-0.49.2}/tests/app/examples/migrations/0001_initial.py +0 -0
  124. {plain_models-0.49.0 → plain_models-0.49.2}/tests/app/examples/migrations/0002_test_field_removed.py +0 -0
  125. {plain_models-0.49.0 → plain_models-0.49.2}/tests/app/examples/migrations/0003_deleteparent_childsetnull_childsetdefault_and_more.py +0 -0
  126. {plain_models-0.49.0 → plain_models-0.49.2}/tests/app/examples/migrations/__init__.py +0 -0
  127. {plain_models-0.49.0 → plain_models-0.49.2}/tests/app/examples/models.py +0 -0
  128. {plain_models-0.49.0 → plain_models-0.49.2}/tests/app/settings.py +0 -0
  129. {plain_models-0.49.0 → plain_models-0.49.2}/tests/app/urls.py +0 -0
  130. {plain_models-0.49.0 → plain_models-0.49.2}/tests/test_database_url.py +0 -0
  131. {plain_models-0.49.0 → plain_models-0.49.2}/tests/test_delete_behaviors.py +0 -0
  132. {plain_models-0.49.0 → plain_models-0.49.2}/tests/test_exceptions.py +0 -0
  133. {plain_models-0.49.0 → plain_models-0.49.2}/tests/test_manager_assignment.py +0 -0
  134. {plain_models-0.49.0 → plain_models-0.49.2}/tests/test_models.py +0 -0
  135. {plain_models-0.49.0 → plain_models-0.49.2}/tests/test_related_descriptors.py +0 -0
  136. {plain_models-0.49.0 → plain_models-0.49.2}/tests/test_related_manager_api.py +0 -0
@@ -16,3 +16,4 @@ plain*/tests/.plain
16
16
 
17
17
  .vscode
18
18
  /.claude
19
+ /.benchmarks
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: plain.models
3
- Version: 0.49.0
3
+ Version: 0.49.2
4
4
  Summary: Model your data and store it in a database.
5
5
  Author-email: Dave Gaeddert <dave.gaeddert@dropseed.dev>
6
6
  License-File: LICENSE
@@ -1,5 +1,25 @@
1
1
  # plain-models changelog
2
2
 
3
+ ## [0.49.2](https://github.com/dropseed/plain/releases/plain-models@0.49.2) (2025-10-02)
4
+
5
+ ### What's changed
6
+
7
+ - Updated dependency to use the latest plain package version
8
+
9
+ ### Upgrade instructions
10
+
11
+ - No changes required
12
+
13
+ ## [0.49.1](https://github.com/dropseed/plain/releases/plain-models@0.49.1) (2025-09-29)
14
+
15
+ ### What's changed
16
+
17
+ - Fixed `get_field_display()` method to accept field name as string instead of field object ([1c20405](https://github.com/dropseed/plain/commit/1c20405ac3))
18
+
19
+ ### Upgrade instructions
20
+
21
+ - No changes required
22
+
3
23
  ## [0.49.0](https://github.com/dropseed/plain/releases/plain-models@0.49.0) (2025-09-29)
4
24
 
5
25
  ### What's changed
@@ -665,8 +665,10 @@ class Model(metaclass=ModelBase):
665
665
  collector.collect([self])
666
666
  return collector.delete()
667
667
 
668
- def get_field_display(self, field):
668
+ def get_field_display(self, field_name: str) -> str:
669
669
  """Get the display value for a field, especially useful for fields with choices."""
670
+ # Get the field object from the field name
671
+ field = self._meta.get_field(field_name)
670
672
  value = getattr(self, field.attname)
671
673
 
672
674
  # If field has no choices, just return the value as string
@@ -199,9 +199,9 @@ class ForwardManyToOneDescriptor:
199
199
  - ``instance`` is the ``child`` instance
200
200
  - ``value`` is the ``parent`` instance on the right of the equal sign
201
201
  """
202
- # If value is a LazyObject (like SimpleLazyObject used for request.user),
203
- # force its evaluation. For ForeignKey fields, the value should only be
204
- # None or a model instance, never a boolean or other type.
202
+ # If value is a LazyObject, force its evaluation. For ForeignKey fields,
203
+ # the value should only be None or a model instance, never a boolean or
204
+ # other type.
205
205
  if isinstance(value, LazyObject):
206
206
  # This forces evaluation: if it's None, value becomes None;
207
207
  # if it's a User instance, value becomes that instance.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "plain.models"
3
- version = "0.49.0"
3
+ version = "0.49.2"
4
4
  description = "Model your data and store it in a database."
5
5
  authors = [{name = "Dave Gaeddert", email = "dave.gaeddert@dropseed.dev"}]
6
6
  readme = "README.md"
File without changes
File without changes