【问题标题】:Node properties not created when using neo4django使用 neo4django 时未创建节点属性
【发布时间】:2013-07-11 17:55:27
【问题描述】:

我在django 中有一个Model 是用neo4django 创建的。

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.
>>>

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

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

我有Django 1.4.5Neo4J 1.8.2

【问题讨论】:

    标签: django django-models neo4j neo4django


    【解决方案1】:

    马特非常感谢您的推荐。我总是运行主 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()
    

    然后一切都按预期进行。

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

    【讨论】:

    • 哇 - 我很惊讶它的工作原理,特别是因为我们不正式支持 1.5。太棒了。
    • 它可以工作,但有一些小故障,我会在这里或在 github 上报告它们(无论你建议什么),并且可能能够为项目提供任何更新。
    • 我肯定会在 GitHub 上报告这些。您遇到的问题的路线图将真正加快官方支持 (github.com/scholrly/neo4django/issues/143)。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2014-07-22
      • 2014-10-11
      • 2014-05-28
      • 1970-01-01
      • 1970-01-01
      • 2012-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多