首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django-mptt TreeManyToManyField不工作?

Django-mptt TreeManyToManyField不工作?
EN

Stack Overflow用户
提问于 2012-03-22 06:45:28
回答 1查看 1.3K关注 0票数 2

我尝试了一段时间在我的项目中设置django-mptt。我从tutorial中取了一个样本,并相应地更改了模型,如下所示:

代码语言:javascript
复制
class Genre(MPTTModel):
pk = models.AutoField(primary_key=True)
name = models.CharField(max_length=50, unique=True)
parent = TreeManyToManyField('self', null=True, blank=True, related_name='children')

class MPTTMeta:
    order_insertion_by = ['name']

不幸的是,console打印出如下内容:

代码语言:javascript
复制
/srv/tokedu/local/lib/python2.7/site-packages/Django-1.3.1-py2.7.egg/django/db/models/base.pyc in _set_pk_val(self, value)
    426 
    427     def _set_pk_val(self, value):
--> 428         return setattr(self, self._meta.pk.attname, value)
    429 
    430     pk = property(_get_pk_val, _set_pk_val)
/srv/tokedu/local/lib/python2.7/site-packages/Django-1.3.1-py2.7.egg/django/db/models/base.pyc in _set_pk_val(self, value)
    426 
    427     def _set_pk_val(self, value):
--> 428         return setattr(self, self._meta.pk.attname, value)
    429 
    430     pk = property(_get_pk_val, _set_pk_val)
RuntimeError: maximum recursion depth exceeded

我认为django-mptt不支持TreeManyToManyField。有没有人有同样的问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-23 23:43:03

节点不能有多个父级。这从根本上改变了你的数据结构--它不再是一棵树,而是一个任意的图。

django-mptt只处理树。如果你有一个大型的图形数据库,你就会遇到一个非常不同的问题。您可能希望考虑使用图形数据库,而不是RDBMS。

有用的链接:

  • http://en.wikipedia.org/wiki/Graph_database
  • http://techportal.inviqa.com/2009/09/07/graphs-in-the-database-sql-meets-social-networks/
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9813974

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档