-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
897be60
commit 5e79a31
Showing
1 changed file
with
54 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,57 @@ | ||
# djarango | ||
ArangoDB Backend Interface for Django | ||
|
||
# Installation | ||
pip install djarango | ||
|
||
# Configure settings.py (example) | ||
|
||
``` | ||
DATABASES_ARANGO = { | ||
'default': { | ||
'ENGINE' : 'django.db.backends.arangodb',# Backend implementation | ||
'NAME' : 'graphdb', # DB name | ||
'HOST' : 'localhost', # Single-mode host; 'localhost' is default. | ||
'PORT' : '8529', # Port 8529 is the default; optional. | ||
'USER' : 'someuser', | ||
'PASSWORD' : 'somepassword', | ||
'TIME_ZONE' : 'UTC', | ||
# 'USE_TZ' : True, | ||
'CONN_MAX_AGE' : 60, | ||
'AUTOCOMMIT' : True, | ||
# Arango supports clustered DB | ||
# If "HOSTS" is provided, it will override "HOST". | ||
# 'HOSTS' : [ '172.28.0.1', '172.28.0.2', '172.28.0.3', '172.28.0.4', ], | ||
# 'HOST_RESOLVER' : 'rounrobin', # Options are 'roundrobin' | 'random' | ||
} | ||
} | ||
``` | ||
|
||
# Add Edge Fields to a Django model (example) | ||
``` | ||
from django.db.backends.arangodb.fields.edges import EdgeField | ||
# Djarango treats every Django model as an ArangoDB collection. | ||
class ModelA(models.Model): | ||
title = models.CharField(max_length = 50) | ||
description = models.CharField(max_length = 200) | ||
counta = models.IntegerField(default = 0) | ||
# EdgeField creates an edge from ModelA to ModelB | ||
# ModelA and ModelB are ArangoDB nodes, by default. | ||
# graph_name specifies the name of the graph that will be created in | ||
# ArangoDB containing the model (node) collections and edges. | ||
modelb = EdgeField('ModelB', graph_name='ABTest') | ||
class ModelB(models.Model): | ||
title = models.CharField(max_length = 50) | ||
description = models.CharField(max_length = 200) | ||
countb = models.IntegerField(default = 0) | ||
# The EdgeFields are unidirectional. In order to create a bidirectional | ||
# edge, there must be an EdgeField in each direction. | ||
# Specify the same graph_name so that the edges will be in the same graph. | ||
# Otherwise, a graph name will be auto-generated: 'graph_modelb_modela' | ||
# and each edge will be in different graphs. | ||
modela = EdgeField('ModelA', graph_name='ABTest') | ||
``` |