Django models neo4django:意外(?)警告?

Django models neo4django:意外(?)警告?,django-models,neo4j,neo4django,Django Models,Neo4j,Neo4django,我不知道为什么我会收到这个警告;很可能我没有完全理解相关名称的概念,但我认为拥有不同的rel\u类型会使上述模型不含糊/冲突 我在neo4django中收到以下警告: >>> from evidences.models import * /[...]/neo4django/db/models/relationships.py:180: UserWarning: `evidence` and `evidence` share a relationship type and dir

我不知道为什么我会收到这个警告;很可能我没有完全理解
相关名称的概念,但我认为拥有不同的
rel\u类型
会使上述模型不含糊/冲突

我在neo4django中收到以下警告:

>>> from evidences.models import *
/[...]/neo4django/db/models/relationships.py:180: UserWarning: `evidence` and `evidence` share a relationship type and direction. Is this what you meant to do?
  % (r.name, name))
/[...]/neo4django/db/models/relationships.py:180: UserWarning: `families` and `families` share a relationship type and direction. Is this what you meant to do?
  % (r.name, name))
相关模型可在此处找到:

我认为,具有相同
相关名称的关系之间既不共享关系类型也不共享目标模型

使用Django 1.4,neo4django从git获得电流


有什么想法吗?

两者之间肯定存在冲突

spouses = models.Relationship('Person',rel_type='SPOUSE',related_name='families')

设置
related_name
表示您希望通过该名称访问关系另一端的模型实例。由于两行都指向
个人
,因此每个个人实例都需要以某种方式确定
家庭
关系字段是指“配偶”还是“子女”类型的关系


不过,我不确定警告的证据。如果模型的工作方式符合您的预期,我不会为此担心。

Ha!我检查了
证据
警告,没有发现冲突,也不想检查
家庭
!你会设置一个单元测试来调查
证据
案例吗?因此,我想要的是亲自拥有一个对象
家庭
,它基本上是即将到来的配偶和孩子的结合(关系的另一端总是
家庭
)。我如何做到这一点?创建自己的经理是正确的方法吗?事实上,我需要让p.families.all()提供所有的家族,并在add函数中进行区分:p.families.addAsChildFam(..)与p.families.addAsSpouseFam(..),as.add在这样一个“联合”管理器上是不明确的。如果你能帮我一个忙并提出一个问题,我可以尝试进一步调查证据案例。见鬼,如果你觉得很大方,我很乐意接受拉拽,尤其是确认bug:)我有一个类似的、有点奇怪的关系用例——让我看看我的解决方案,看看它是否可以推广。客户
经理
可能会成为其中的一部分,但我觉得不管怎样,这都会涉及到相当多的问题。希望我能很快给你们一个要点。这个问题已经提出了。虽然我很欣赏这个温和的提示,但我对github还是相当陌生(在非常小规模的单人项目中使用git),所以我很熟悉git的所有强大社区功能,因此也很着急使用它。事实上,我甚至不确定我是否正确理解了行话。你是建议我拉neo4django,修复它并发送拉取请求(这现在真的超出了范围),还是建议我将项目存根发布在回购中,作为“测试用例”或确认bug?顺便说一句,有没有更私密的方式和你联系,马特?谢谢你,先生。我建议您直接向项目中添加一个测试用例,但如果您不太满意,请不要担心。简单地说,如果您点击repo上的“fork”,您将拥有自己的私有版本,您可以
git clone
,提交您想要的任何更改,并
git push
。在GitHub中,在推送到fork之后,通过它们的接口发出pull请求,要求原始维护人员将您的更改合并到。
children = models.Relationship('Person',rel_type='CHILD',related_name='families')