1

我有一个Model用.djangoneo4django

class Person(models.NodeModel):
    """
    Persons of a Company
    """
    email = models.EmailProperty(required=True, unique=True, indexed=True,
                                 name=_(u'email'),
                                 verbose_name=_(u'person email address'),
                                 help_text=_(u'bla bla bla some help text'))
    full_name = models.StringProperty(name=_(u'Person full name'))

    # Neo4J Relationships
    role = models.Relationship(Role, rel_type='has_role',
                                     direction='Outgoing',
                                     related_name='persons')
    company = models.Relationship(Company, rel_type='works_to',
                                           direction='Outgoing',
                                           related_name='employees')

我尝试使用 django shell

>>> p = Person.objects.create(email=u'email@company.com')
>>> p.id
6
>>> Person.objects.get(id='6')
<Person: Person object>
>>> Person.objects.get(email=u'email@company.com')
Traceback [bla bla bla]
[...]
DoesNotExist: Person matching query does not exist.
>>>

我还检查了Neo4JWeb 界面,我看到了创建的节点,但没有任何属性!

这个问题看起来像这里提到的问题,但我不确定这是否是同一个问题。

我有Django 1.4.5Neo4J 1.8.2

4

2 回答 2

3

马特非常感谢您的推荐。我总是运行主 git 版本。

我升级到Django 1.5.1并且问题消失了。我仍然运行 1.8.2 版本的 Neo4J。

更新

试图弄清楚,我回到了Django 1.4.5一些研究之后,我发现问题实际上是因为name节点属性上的属性。

所以如果我改变这个

full_name = models.StringProperty(name=_(u'Person full name'))

对此

full_name = models.StringProperty(verbose_name=_(u'Person full name'))

或这个

full_name = models.StringProperty()

然后一切都按预期工作。

实际上,name即使您升级到,问题仍然存在,Django 1.5.1所以我想在其中具有 name 属性时创建属性存在一些问题。

于 2013-07-11T18:47:35.733 回答
0

你使用的是什么版本的 neo4django?我建议在 Github ( pip install -e git+https://github.com/scholrly/neo4django#egg=neo4django-dev) 上使用 neo4django master 尝试相同的代码。

于 2013-07-11T18:20:59.980 回答