1
1
.. _django-limitations:
2
2
3
- ============
4
- Limitations
5
- ============
3
+ =================================
4
+ Limitations and Upcoming Features
5
+ =================================
6
6
7
7
.. contents:: On this page
8
8
:local:
9
9
:backlinks: none
10
- :depth: 1
10
+ :depth: 2
11
11
:class: singlecol
12
12
13
13
.. facet::
@@ -21,14 +21,32 @@ Overview
21
21
--------
22
22
23
23
On this page, you can find a list of features that
24
- {+django-odm+} does not support. Because {+django-odm+} is in active
25
- development, some features listed on this page might be considered for future
26
- releases based on user demand. You can request support for a feature by leaving
27
- a suggestion on the `Drivers Feedback Forum
24
+ {+django-odm+} does not support. You can also find features
25
+ currently planned for the General Availability (GA) and post-GA
26
+ releases. We will prioritize these upcoming features
27
+ based on user demand, and you can request support
28
+ for a feature by leaving a suggestion on the `Drivers Feedback Forum
28
29
<https://feedback.mongodb.com/forums/924286-drivers?category_id=370732>`__.
29
30
31
+ Feature Limitations
32
+ -------------------
33
+
34
+ In this section, you can learn about the following
35
+ types of unsupported {+framework+} and MongoDB features:
36
+
37
+ - :ref:`django-limitations-database`
38
+ - :ref:`django-limitations-models`
39
+ - :ref:`django-limitations-query`
40
+ - :ref:`django-limitations-management`
41
+ - :ref:`django-limitations-migration`
42
+ - :ref:`django-limitations-async`
43
+ - :ref:`django-limitations-data`
44
+ - :ref:`django-limitations-performance`
45
+
46
+ .. _django-limitations-database:
47
+
30
48
Unsupported Database Variables
31
- ------------------------------
49
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
32
50
33
51
The following database variables are not supported by {+django-odm+}:
34
52
@@ -37,16 +55,18 @@ The following database variables are not supported by {+django-odm+}:
37
55
- ``CONN_HEALTH_CHECKS``
38
56
- ``TIME_ZONE``
39
57
58
+ .. _django-limitations-models:
59
+
40
60
Model Limitations
41
- -----------------
61
+ ~~~~~~~~~~~~~~~~~
42
62
43
63
The following limitations apply to models in {+django-odm+}:
44
64
45
65
- {+django-odm+} enforces a one-to-one mapping between a Django model and a
46
66
MongoDB collection. Because of this, multiple models cannot share the same collection.
47
67
48
68
Indexes
49
- ~~~~~~~
69
+ ```````
50
70
51
71
{+django-odm+} does not support the following index functionalities:
52
72
@@ -59,8 +79,10 @@ To learn how to run unsupported database operations by operating directly on
59
79
your ``MongoClient`` instance, see :ref:`django-client-operations` in the
60
80
Perform Raw Database Queries guide.
61
81
82
+ .. _django-limitations-models-fields:
83
+
62
84
Fields
63
- ~~~~~~
85
+ ``````
64
86
65
87
{+django-odm+} has the following limitations on the specified field types:
66
88
@@ -115,8 +137,10 @@ The following field types are unavailable in {+django-odm+}:
115
137
- ``BigAutoField``
116
138
- ``SmallAutoField``
117
139
140
+ .. _django-limitations-query:
141
+
118
142
Querying Limitations
119
- --------------------
143
+ ~~~~~~~~~~~~~~~~~~~~
120
144
121
145
{+django-odm+} does not support the following ``QuerySet`` API methods:
122
146
@@ -130,14 +154,14 @@ Querying Limitations
130
154
that span multiple collections.
131
155
132
156
Geospatial Queries
133
- ~~~~~~~~~~~~~~~~~~
157
+ ``````````````````
134
158
135
159
- {+django-odm+} does not support ``GeoDjango``.
136
160
- {+django-odm+} does not have any Django lookup operators for MongoDB-specific
137
161
geospatial queries.
138
162
139
163
Aggregation Operators
140
- ~~~~~~~~~~~~~~~~~~~~~
164
+ `````````````````````
141
165
142
166
{+django-odm+} does not contain any custom Django field lookups for the MongoDB
143
167
aggregation framework. Instead, use the ``raw_aggregate()`` method. For more
@@ -147,7 +171,7 @@ the :ref:`django-raw-queries` guide.
147
171
.. TODO: Link to aggregation
148
172
149
173
Database Functions
150
- ~~~~~~~~~~~~~~~~~~
174
+ ``````````````````
151
175
152
176
{+django-odm+} does not support the following database functions:
153
177
@@ -166,8 +190,10 @@ Database Functions
166
190
The ``tzinfo`` parameter of the ``Trunc`` database functions doesn't work
167
191
properly because MongoDB converts the result back to UTC.
168
192
193
+ .. _django-limitations-management:
194
+
169
195
Django Management Command Limitations
170
- -------------------------------------
196
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
171
197
172
198
{+django-odm+} does not support the following Django management commands:
173
199
@@ -177,8 +203,10 @@ Django Management Command Limitations
177
203
- ``sqlflush``
178
204
- ``sqlsequencereset``
179
205
206
+ .. _django-limitations-migration:
207
+
180
208
Migration Limitations
181
- ---------------------
209
+ ~~~~~~~~~~~~~~~~~~~~~
182
210
183
211
- {+django-odm+} does not support enforced schema validation. To learn how to
184
212
enforce schema validation in your application, see the :manual:`Specify JSON
@@ -188,24 +216,147 @@ Migration Limitations
188
216
<{+django-docs+}/topics/migrations/#transactions>`__.
189
217
- {+django-odm+} does not support the ``migrate --fake-initial`` command.
190
218
191
- Asynchronous Support
192
- --------------------
219
+ .. _django-limitations-async:
220
+
221
+ Asynchronous Limitations
222
+ ~~~~~~~~~~~~~~~~~~~~~~~~
193
223
194
224
{+django-odm+} has not been tested for support of the asynchronous functionality of
195
225
the Django API.
196
226
227
+ .. _django-limitations-data:
228
+
197
229
Data Types
198
- ----------
230
+ ~~~~~~~~~~
199
231
200
232
{+django-odm+} does not have a custom ``Field`` class for the ``BSONRegExp``
201
233
data type. Instead, use the ``CharField`` class.
202
234
235
+ .. _django-limitations-performance:
236
+
203
237
Performance
204
- -----------
238
+ ~~~~~~~~~~~
205
239
206
240
The engineering team is prioritizing feature development for the Public Preview
207
241
release of {+django-odm+}. Because of this, you might notice performance
208
242
limitations with certain workloads. If you encounter any performance issues,
209
243
please report them as shown in the :ref:`Issues & Help <django-issues-and-help>`
210
244
guide. You can also share your feedback on the `Drivers Feedback Forum
211
245
<https://feedback.mongodb.com/forums/924286-drivers?category_id=370732>`__.
246
+
247
+ General Availability Release Features
248
+ -------------------------------------
249
+
250
+ In this section, you can learn about the following
251
+ types of {+framework+} and MongoDB features that
252
+ GA and post-GA {+django-odm+} releases will likely introduce:
253
+
254
+ - :ref:`django-upcoming-mongodb`
255
+ - :ref:`django-upcoming-models`
256
+ - :ref:`django-upcoming-management`
257
+ - :ref:`django-upcoming-third-party`
258
+ - :ref:`django-upcoming-variables`
259
+ - :ref:`django-upcoming-async`
260
+
261
+ .. _django-upcoming-mongodb:
262
+
263
+ MongoDB Features
264
+ ~~~~~~~~~~~~~~~~
265
+
266
+ We plan to support the following MongoDB features in
267
+ the GA release:
268
+
269
+ - Programmatic management of Vector Search, Atlas Search,
270
+ and geospatial indexes by using the Django API
271
+ - Vector Search, Atlas Search, and geospatial queries
272
+ by using the Django API
273
+ - Queryable Encryption and Client-side Field Level Encryption
274
+ - Database transactions
275
+ - Storage of cached data in the database
276
+
277
+ We plan to support the following MongoDB features in
278
+ future post-GA releases:
279
+
280
+ - GridFS for large file storage
281
+ - Change streams for data monitoring
282
+ - Schema validation
283
+
284
+ .. tip::
285
+
286
+ To learn more about the MongoDB features mentioned in this section, see
287
+ the following resources:
288
+
289
+ - :atlas:`Atlas Vector Search </atlas-vector-search/vector-search-overview/>` in the Atlas documentation
290
+ - :atlas:`Atlas Search </atlas-search>` in the Atlas documentation
291
+ - :manual:`Geospatial Queries </geospatial-queries/>` in the {+mdb-server+}
292
+ manual
293
+ - :manual:`In-Use Encryption </core/security-in-use-encryption/>` in the {+mdb-server+}
294
+ manual
295
+ - :manual:`Transactions </core/transactions/>` in the {+mdb-server+}
296
+ manual
297
+ - :manual:`GridFS </core/gridfs/>` in the {+mdb-server+}
298
+ manual
299
+ - :manual:`Change Streams </changeStreams/>` in the {+mdb-server+}
300
+ manual
301
+
302
+ .. _django-upcoming-models:
303
+
304
+ Model Features
305
+ ~~~~~~~~~~~~~~
306
+
307
+ We plan to support the following model features in
308
+ the GA release:
309
+
310
+ - Arrays of embedded documents
311
+ - Polymorphic embedded documents and arrays
312
+ - Application of changes to the embedded model schema to
313
+ ``EmbeddedModelField`` values
314
+ - Multiple models within a collection
315
+ - Improved form representation in embedded models
316
+
317
+ In future post-GA releases, we plan to support a custom ``Field``
318
+ class for the ``BSONRegExp`` data type.
319
+
320
+ .. _django-upcoming-management:
321
+
322
+ Django Management Command Features
323
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
324
+
325
+ We plan to support the following Django commands in
326
+ the GA release:
327
+
328
+ - ``dumpdata``
329
+ - ``loaddata``
330
+
331
+ .. _django-upcoming-third-party:
332
+
333
+ Third Party Features
334
+ ~~~~~~~~~~~~~~~~~~~~
335
+
336
+ We plan to support the following third-party features in
337
+ the GA release:
338
+
339
+ - `Django-filter <https://django-filter.readthedocs.io/en/stable/>`__
340
+ - `Django Rest Framework <https://www.django-rest-framework.org/>`__
341
+ - `Django-allauth <https://docs.allauth.org/en/latest/>`__
342
+ - `Wagtail <https://wagtail.org/>`__
343
+ - `Django Debug Toolbar <https://django-debug-toolbar.readthedocs.io/en/latest/>`__
344
+
345
+ .. _django-upcoming-variables:
346
+
347
+ Database Variable Support
348
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
349
+
350
+ We plan to support the following Django variables for configuring
351
+ your database connection in future post-GA releases:
352
+
353
+ - ``CONN_HEALTH_CHECKS``
354
+ - ``TIME_ZONE``
355
+
356
+ .. _django-upcoming-async:
357
+
358
+ Asynchronous Support
359
+ ~~~~~~~~~~~~~~~~~~~~
360
+
361
+ We plan to offer asynchronous support for {+django-odm+} in
362
+ future post-GA releases.
0 commit comments