From de6d4d70706157ba52a2e043cd2acf59a1d61b20 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Tue, 4 Feb 2025 10:47:15 -0500 Subject: [PATCH] Correct and copyedit limitations page --- source/limitations-upcoming.txt | 118 +++++++++----------------------- 1 file changed, 31 insertions(+), 87 deletions(-) diff --git a/source/limitations-upcoming.txt b/source/limitations-upcoming.txt index bc18be0..1707f70 100644 --- a/source/limitations-upcoming.txt +++ b/source/limitations-upcoming.txt @@ -33,36 +33,31 @@ Feature Limitations In this section, you can learn about the following types of unsupported {+framework+} and MongoDB features: -- :ref:`django-limitations-database` +- :ref:`django-limitations-transactions` - :ref:`django-limitations-models` - :ref:`django-limitations-query` - :ref:`django-limitations-management` - :ref:`django-limitations-migration` -- :ref:`django-limitations-async` -- :ref:`django-limitations-data` - :ref:`django-limitations-performance` -.. _django-limitations-database: +.. _django-limitations-transactions: -Unsupported Database Variables -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Transaction management +~~~~~~~~~~~~~~~~~~~~~~ -The following database variables are not supported by {+django-odm+}: +Query execution uses Django and MongoDB's default behavior of autocommit mode. +Each query is immediately committed to the database. -- ``ATOMIC_REQUESTS`` -- ``AUTOCOMMIT`` -- ``CONN_HEALTH_CHECKS`` -- ``TIME_ZONE`` +Django's transaction management APIs are not supported. .. _django-limitations-models: Model Limitations ~~~~~~~~~~~~~~~~~ -The following limitations apply to models in {+django-odm+}: - -- {+django-odm+} enforces a one-to-one mapping between a Django model and a - MongoDB collection. Because of this, multiple models cannot share the same collection. +Django doesn't support MongoDB's `polymorphic pattern +`__ +where slightly different models share the same collection. Indexes ``````` @@ -127,9 +122,7 @@ Fields The following field types are unavailable in {+django-odm+}: - ``GeneratedField`` -- ``AutoField`` -- ``BigAutoField`` -- ``SmallAutoField`` +- ``AutoField`` (including ``BigAutoField`` and ``SmallAutoField``) .. _django-limitations-query: @@ -158,12 +151,9 @@ Geospatial Queries Aggregation Operators ````````````````````` -{+django-odm+} does not contain any custom Django field lookups for the MongoDB -aggregation framework. Instead, use the ``raw_aggregate()`` method. For more -information on the ``raw_aggregate()`` method, see -the :ref:`django-raw-queries` guide. - -.. TODO: Link to aggregation +{+django-odm+} does not include any custom Django field lookups for the MongoDB +aggregation framework. Instead, use the ``raw_aggregate()`` method. See the +:ref:`django-raw-queries` guide. Database Functions `````````````````` @@ -187,16 +177,13 @@ properly because MongoDB converts the result back to UTC. .. _django-limitations-management: -Django Management Command Limitations -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Unsupported Management Commands +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -{+django-odm+} does not support the following Django management commands: +The following ``django-admin`` commands are unsupported: - ``createcachetable`` - ``inspectdb`` -- ``optimizemigration`` -- ``sqlflush`` -- ``sqlsequencereset`` .. _django-limitations-migration: @@ -210,23 +197,7 @@ Migration Limitations Schema Validation ` guide in the {+mdb-server+} manual. - `DDL Transactions <{+django-docs+}/topics/migrations/#transactions>`__. -- ``migrate --fake-initial`` command. - -.. _django-limitations-async: - -Asynchronous Limitations -~~~~~~~~~~~~~~~~~~~~~~~~ - -{+django-odm+} has not been tested for support of the asynchronous functionality of -the Django API. - -.. _django-limitations-data: - -Data Types -~~~~~~~~~~ - -{+django-odm+} does not have a custom ``Field`` class for the ``BSONRegExp`` -data type. Instead, use the ``CharField`` class. +- The ``migrate --fake-initial`` option. .. _django-limitations-performance: @@ -250,16 +221,13 @@ GA and post-GA {+django-odm+} releases will likely introduce: - :ref:`django-upcoming-models` - :ref:`django-upcoming-management` - :ref:`django-upcoming-third-party` -- :ref:`django-upcoming-variables` -- :ref:`django-upcoming-async` .. _django-upcoming-mongodb: MongoDB Features ~~~~~~~~~~~~~~~~ -We plan to support the following MongoDB features in -the GA release: +We plan to support the following MongoDB features in the GA release: - Programmatic management of Vector Search, Atlas Search, and geospatial indexes by using the Django API @@ -269,8 +237,7 @@ the GA release: - Database transactions - Storage of cached data in the database -We plan to support the following MongoDB features in -future post-GA releases: +We plan to support the following MongoDB features in future post-GA releases: - GridFS for large file storage - Change streams for data monitoring @@ -299,8 +266,7 @@ future post-GA releases: Model Features ~~~~~~~~~~~~~~ -We plan to support the following model features in -the GA release: +We plan to support the following model features in the GA release: - Arrays of embedded documents - Polymorphic embedded documents and arrays @@ -309,49 +275,27 @@ the GA release: - Multiple models within a collection - Improved form representation in embedded models -In future post-GA releases, we plan to support a custom ``Field`` -class for the ``BSONRegExp`` data type. +In a future post-GA release, we plan to add a custom model field for the +``BSONRegExp`` data type. .. _django-upcoming-management: -Django Management Command Features -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +Management Command Features +~~~~~~~~~~~~~~~~~~~~~~~~~~~ -We plan to support the following Django commands in -the GA release: - -- ``dumpdata`` -- ``loaddata`` +Serialization support for ``EmbeddedModelField`` (i.e. Django's ``dumpdata`` +and ``loaddata`` management commands) will be added by the GA release. .. _django-upcoming-third-party: -Third Party Features -~~~~~~~~~~~~~~~~~~~~ +Third-Party Libraries +~~~~~~~~~~~~~~~~~~~~~ -We plan to support the following third-party features in -the GA release: +We plan to test compatibility with the following third-party libraries by the +GA release: - `Django-filter `__ - `Django Rest Framework `__ - `Django-allauth `__ - `Wagtail `__ - `Django Debug Toolbar `__ - -.. _django-upcoming-variables: - -Database Variable Support -~~~~~~~~~~~~~~~~~~~~~~~~~ - -We plan to support the following Django variables for configuring -your database connection in future post-GA releases: - -- ``CONN_HEALTH_CHECKS`` -- ``TIME_ZONE`` - -.. _django-upcoming-async: - -Asynchronous Support -~~~~~~~~~~~~~~~~~~~~ - -We plan to offer asynchronous support for {+django-odm+} in -future post-GA releases.