The Admin Interface¶
After a few settings tweaks, you can use the admin interface.
You’ll need neo4django’s Authentication working properly, as well as its
prerequisites like django.contrib.sessions
.
Add neo4django.admin
and neo4django.contenttypes
to your
INSTALLED_APPS
. Also include django.contrib.admin
and
django.contrib.contenttypes
, but make sure they come after the neo4django
versions.
In your urls.py, instead of importing django.contrib.admin
, import
neo4django.admin
:
from neo4django import admin
admin.autodiscover()
urlpatterns = patterns('',
...
(r'^admin/', include(admin.site.urls)),
)
And in your app’s admin.py, do the same:
from neo4django import admin
from my_app.models import MyModel
class MyModelAdmin(admin.ModelAdmin):
...
admin.site.register(MyModel, MyModelAdmin)
Since we don’t use syncdb, you probably won’t have created a neo4django superuser. Run manage.py shell and create a superuser with:
from neo4django.graph_auth.models import User
User.objects.create_superuser('matt', 'matt@emailprovider.com', 'password')
Run manage.py runserver, and visit http://localhost:8000/admin. Voila. Sign in and enjoy.
Usage with Relational Databases¶
The integration hasn’t been tested using both Neo4j and a relational database. The two databases certainly wouldn’t be able to share an admin site, but it might be possible to run them as separate admin sites with their own URLs.
As example routing might look like:
from django.contrib import admin
admin.autodiscover()
from neo4django import admin as neo_admin
neo_admin.autodiscover()
urlpatterns = patterns('',
(r'^admin/', include(admin.site.urls)),
(r'^neo_admin/', include(neo_admin.site.urls))
)
If you give this a try, please let us know how it goes!
Limitations¶
The integration is new, and only basic features have been tested. Known limitations include broken “View on Site” and “History” buttons, but more will surely be found. If you have any trouble, please raise an issue!