Skip to content

Files

Latest commit

 

History

History
47 lines (36 loc) · 1.87 KB

db_model.md

File metadata and controls

47 lines (36 loc) · 1.87 KB

Database model and fields definition

Flask-Mongoengine does not adjust database level behaviour of [mongoengine] fields
definition, except [keyword only definition] requirement. Everything other on
database level match [mongoengine] project. All parent methods, arguments (as
keyword arguments) and keyword arguments are supported.

If you are not intend to use WTForms integration, you are free to use fields classes
from parent [mongoengine] project; this should not break anything.

Supported fields

Flask-Mongoengine support all database fields definition. Even if there will be some new field type created in parent mongoengine project, we will silently bypass field definition to it, if we do not declare rules on our side.

Version **2.0.0** Flask-Mongoengine update support [mongoengine] fields, based on
version **mongoengine==0.21**. Any new fields bypassed without modification.

Keyword only definition

.. versionchanged:: 2.0.0

Database model definition rules and Flask-WTF/WTForms integration was seriously updated in version 2.0.0. Unfortunately, these changes implemented without any deprecation stages.

Before version 2.0.0 Flask-Mongoengine integration allowed to pass fields parameters as arguments. To exclude any side effects or keyword parameters duplication/conflicts, since version 2.0.0 all fields require keyword only setup.

Such approach removes number of issues and questions, when users frequently used Flask-WTF/WTForms definition rules by mistake, or just missed that some arguments was passed to keyword places silently creating unexpected side effects. You can check issue #379 as example of one of such cases.