Neomodel documentation

An Object Graph Mapper (OGM) for the Neo4j graph database, built on the awesome neo4j_driver

  • Familiar Django model style definitions.

  • Powerful query API.

  • Enforce your schema through cardinality restrictions.

  • Full transaction support.

  • Thread safe.

  • Async support.

  • pre/post save/delete hooks.

  • Django integration via django_neomodel


For releases 5.x :

  • Python 3.7+

  • neo4j 5.x, 4.4 (LTS)

For releases 4.x :

  • Python 3.7 -> 3.10

  • Neo4j 4.x (including 4.4 LTS for neomodel version 4.0.10)


Install from pypi (recommended):

$ pip install neomodel

To install from github:

$ pip install git+git://


Breaking changes in 5.3

Introducing support for asynchronous programming to neomodel required to introduce some breaking changes:

  • config.AUTO_INSTALL_LABELS has been removed. Please use the neomodel_install_labels (neomodel_install_labels) command instead.

Deprecations in 5.3

  • Some standalone methods are moved into the Database() class and will be removed in a future release :
    • change_neo4j_password

    • clear_neo4j_database

    • drop_constraints

    • drop_indexes

    • remove_all_labels

    • install_labels

    • install_all_labels

  • Additionally, to call these methods with async, use the ones in the AsyncDatabase() _adb_ singleton.


Indices and tables