3

我正在开发一个 django 项目,我有两个数据库“mysql”和“neo4j”。我安装neo4django包并更改 setting.py,如下所示:

设置.py

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', 
        'NAME': 'mylifetime',                     
        'USER': 'root',
        'PASSWORD': 'mypassword',
        'HOST': '',                      
        'PORT': '',
    }
}
NEO4J_DATABASES = {
    'default' : {
        'HOST':'localhost',
        'PORT':7474,
        'ENDPOINT':'/db/data'
    }
}

我的模型目前只有 neo4j 模型:

模型.py:

from neo4django.db import models


class User(models.NodeModel):
    ...
    #my User models ...
    ....
class Post(models.NodeModel):
    ...
    #my Post models
    ...

当我运行此命令时python manage.py syncdb出现错误:

$ python ../manage.py syncdb
Creating tables ...
AttributeError: 'super' object has no attribute 'db_type'

当我只使用 MySql 模型时,我看不到错误并且表将成功创建。我错在哪里?谢谢

编辑:当我写python manage.py syncdb --traceback我看到下面:

Creating tables ...
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 222, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 255, in execute
    output = self.handle(*args, **options)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py", line 385, in handle
    return self.handle_noargs(**options)
  File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/syncdb.py", line 91, in handle_noargs
    sql, references = connection.creation.sql_create_model(model, self.style, seen_models)
  File "/usr/local/lib/python2.7/dist-packages/django/db/backends/creation.py", line 50, in sql_create_model
    col_type = f.db_type(connection=self.connection)
  File "/usr/local/lib/python2.7/dist-packages/neo4django-0.1.8-py2.7.egg/neo4django/utils.py", line 303, in __getattr__
    return getattr(target, name)
AttributeError: 'super' object has no attribute 'db_type'
4

2 回答 2

3

使用该--traceback选项可manage.py查看您获得的异常的完整堆栈跟踪。

于 2013-08-10T14:10:47.340 回答
2

文档中所述,如果您想针对 Neo4j关系数据库运行,您需要添加neo4django.utils.Neo4djangoIntegrationRouter到您的DATABASE_ROUTERSin settings.py。

于 2013-10-02T21:26:45.593 回答