我正在用neo4django (github版本)构建Django 1.4.5中的应用程序。我目前正在尝试按照https://neo4django.readthedocs.org/en/latest/admin.html
上的指示启用管理界面使用以下设置,当我点击/admin时,我得到错误settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.
My settings.py包含以下内容
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.dummy',
}
}
NEO4J_DATABASES = {
'default' : {
'HOST':'localhost',
'PORT':7474,
'ENDPOINT':'/db/data'
}
}
AUTHENTICATION_BACKENDS = ('neo4django.auth.backends.NodeModelBackend',)
SESSION_ENGINE = ('django.contrib.sessions.backends.file')
TEMPLATE_CONTEXT_PROCESSORS = (
'django.contrib.auth.context_processors.auth',
'django.core.context_processors.request',
'django.core.context_processors.i18n',
'django.contrib.messages.context_processors.messages',
'django.core.context_processors.static',
)
MIDDLEWARE_CLASSES = (
'django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
)
INSTALLED_APPS = (
'neo4django.auth',
'django.contrib.sessions',
'django.contrib.messages',
'neo4django.admin',
'neo4django.contenttypes',
'django.contrib.admin',
'django.contrib.contenttypes',
'django.contrib.auth',
'django.contrib.sites',
'django.contrib.staticfiles',
'my_app',
'users',
)
我的<<p> strong> urls . py from django.conf.urls import patterns, include, url
from neo4django import admin
admin.autodiscover()
urlpatterns = patterns('',
url(r'^$', 'my_app.views.MainHomePage', name='home'),
url(r'^admin/', include(admin.site.urls)),
)
我的<<p> strong> models.py from neo4django.db import models
from neo4django.auth.models import User
class Person(models.NodeModel):
email = models.EmailProperty(required = True, unique = True, indexed = True)
# Neo4J RelationShips
user = models.Relationship(User, rel_type = 'is_user')
def __unicode__(self):
return u'%s' % (self.full_name.strip())
和my admin.py(越简单越好)
from django.contrib import admin
from neo4django.auth.models import User
from users.models import Person
class UserAdmin(admin.ModelAdmin):
pass
admin.site.register(User, UserAdmin)
class PersonAdmin(admin.ModelAdmin):
pass
admin.site.register(Person, PersonAdmin)
我曾尝试使用mysql与neo4j,但我要么得到no such table: django_site
错误,在那里我必须先运行syncdb,至少要创建djjango_site表,或者我只是继续被重定向回admin登录页面成功登录后。
有人能给我指出正确的方向,或者至少告诉我是否只使用neo4j是可能的吗?
对于数据库设置,我通常使用
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': '',
'USER': '',
'PASSWORD': '',
'HOST': '',
'PORT': ''
}
}
我知道这很烦人,但是只要你不运行syncdb,就不会创建sqlite文件(而且neo4django也不需要syncdb)。
就admin.py而言,我注意到你是从django导入的-你需要从neo4django导入。试着
from neo4django import admin
from users.models import Person
class PersonAdmin(admin.ModelAdmin):
...
admin.site.register(Person, PersonAdmin)
编辑:还有一个提示—您可能希望在user
关系上设置single=True
,因为Person
应该只有一个用户。如果User
应该只有一个人,我也会设置related_single=True, related_name='person'
,这样你就可以作为对象而不是管理器访问它们。
好了:
https://docs.djangoproject.com/en/1.5/intro/tutorial01/数据库设置