python-“ settings.DATABASES配置不正确. […]”仅在使用neo4j db时使用neo4django.auth和neo4django.admin

我正在使用neo4django(github版本)在Django 1.4.5中构建应用程序.我目前正在尝试按照https://neo4django.readthedocs.org/en/latest/admin.html上的说明启用管理界面

使用以下设置,当我打/ admin时出现错误
settings.DATABASES配置不正确.请提供引擎值.查看设置文档以获取更多详细信息.

我的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',
)

我的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)),
)

我的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())

和我的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这样的表:django_site错误,我必须首先运行syncdb,至少要创建django_site表,否则我将一直被重定向回成功登录后的管理员登录页面.

有人可以指出我正确的方向,还是至少告诉我是否只能使用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)

编辑:

另一个提示-您可能要在用户关系上设置single = True,因为一个人只能有一个用户.如果一个用户只能有一个人,我还要设置related_single = True,related_name =’person’,这样您就可以将它们作为对象而不是管理者来访问.

上一篇:spring-删除neo4j中的节点或关系后的返回值


下一篇:Java-Mac上的Neo4j:防止org.neo4j.server.Bootstrapper出现在底座中