我有一个Django-CMS 2.4.1项目,它总是给我一个警告:
DeprecationWarning: Implicit manager CMSPlugin.tree will be removed in django-mptt 0.6. Explicitly define a TreeManager() on your model to remove this warning.
这只会发生在生产环境中,而不会发生在开发环境中。
我试过了:
./manage.py cms fix-mptt
它给出了输出(在与上面相同的警告之后):
fixing mptt page tree
fixing
我正在尝试使用django-mptt创建用户树。我有一个auth_user表和一个一对一的映射表UserProperties,它有一个外键auth_user。我在User表的UserProperties模型(parent列)中添加了django-mptt的TreeForeignKey。但它在创建对象时失败,错误如下:
'User' object has no attribute 'is_root_node'
如何将新的根节点添加到django-mptt中的现有树中?我在FactoryBoy中使用Django 1.7.4和django-mptt=0.6.1来测试树。我尝试了以下几点:
my_leaf.move_to(my_root, position='left') # creates a new tree
my_leaf.move_to(None, position='this_is_ignored') # also creates a new tree
newroot = factories.MyFactory.build(parent=None, name=&
我正在使用django构建一个应用程序,并在数据库模式迁移中使用django-south。我使用构建了一个注释系统,并安装了0.5Pre(当前的git主分支)。
我使用的版本有一个名为TreeForeignKey的django字段,但我正在尝试测试0.5是否存在0.4版本的错误,因此我删除了django-mptt版本,并从cheeseshop安装了当前的版本。我修改了我的代码,使其使用ForeignKey而不是TreeForeignKey。
当需要进行迁移时,它显然与以下消息断绝关系:
ValueError: Cannot import the required field 'mptt
我正在创建一个脚本,将同步两个数据库。数据库中有一个数据应该以树的形式存储,所以我使用作为新的DB。当我同步数据库时,我从旧数据库中选择新数据,并将其保存在新数据库中。
我想知道是否有更好的方法将新节点添加到树中?现在,它看起来是另一种方式:
...
# Add new data to DB
for new_record in new_records:
# Find appropriate parent using data in 'new_record'
parent = get_parent(new_record)
# Create object
我正在修改基于django-mptt的第三方Django应用程序。我正试图将一个非常大的模型重构为一个基类和一组混合器。但一切似乎都很好..。
class ModelMixin([see below]):
class Meta:
abstract = True
class BaseModel(ModelMixin, MPTTModel):
class Meta:
abstract = False
如果ModelMixin是从object继承的,南方就不会看到任何在混合输入中声明的字段。
如果ModelMixin继承自mptt.model
我正在尝试制作一个FeinCMS页面树的副本,它是使用django-mptt管理的。我写了这个函数:
def make_tree_copy(page, parent=None):
'''
Makes a copy of the tree starting at "page", reparenting it to "parent"
'''
new_page = Page.objects.create_copy(page)
new_page.save()
Page.tre
我得到两个变量:
post = Post.objects.get(pk=post_id)
rated = Rated.objects.filter(username=request.user,rated=True)
通过django-mptt魔法将post.comment_root.get_descendants转换为node。
在模板中,我尝试使用:
{% if node in rated %}
X
{% else %}
Y
{% endif %}
,但总是得到Y。为什么?
附言:对不起,我的英语
遇到意外行为与模型继承。
我在django shell中启动了以下代码:
import mptt
from django.db import models
class MyTreeQuerySet(mptt.querysets.TreeQuerySet):
pass
class MyTreeManager(
models.Manager.from_queryset(MyTreeQuerySet)
):
pass
class TreeModel(mptt.models.MPTTModel):
class Meta:
app_label =