标签: feincms

Django中管理页面中的分层数据

在Django项目中,我有一个使用MPTT的层次模型,在models.py中定义如下:

class Structure(MPTTModel):
    name = models.CharField(max_length=200, unique=True)
    parent = TreeForeignKey('self', null=True, blank=True, related_name='children')
    [...]
Run Code Online (Sandbox Code Playgroud)

我正在使用FeinCMS在管理页面中显示此分层数据.我在admin.py中这样做:

class StructureAdmin(tree_editor.TreeEditor):
    search_fields = ('name',)

[...]

admin.site.register(Structure, StructureAdmin)
Run Code Online (Sandbox Code Playgroud)

在管理模型页面中,它完美地工作,可以看到层次结构: 在此输入图像描述

它在编辑或添加时也有效:

在此输入图像描述

我在models.py中有另一个模型:

class Track(models.Model):
    initialStructure = models.ForeignKey(Structure , related_name='track_initialStructure')
    finalStructure = models.ForeignKey(Structure, related_name='track_finalStructure')
    [...]
Run Code Online (Sandbox Code Playgroud)

但是,在添加此类新元素时,无法看到层次结构:

在此输入图像描述

我曾尝试使用tree_editor.TreeEditor作为Track的管理视图,但它会产生很多错误,因为Track不是分层的,但是它的一些ForeignKey是.在编辑模型轨道的元素时,如何显示层次结构?

非常感谢你.

django django-mptt feincms

9
推荐指数
1
解决办法
1543
查看次数

Django和FeinCMS:在其他普通模型中使用媒体库的方法?

我正在项目中使用Django和FeinCMS.我目前正在为网站上的所有页面使用FeinCMS.但我也有另一个单独的模型,可以处理网站非常简单的库存.这个库存模型有通常的字段(名称,描述等),但我也希望它有照片.

因为FeinCMS已经有了媒体库,所以我想在技术上使用它来将照片与我的库存模型一起使用.我通常可以做一个Photo模型和ManyToManyField,但我很想知道我是否可以使用FeinCMS媒体库的ManyToManyField?

我知道FeinCMS你可以在任何其他模型上使用项目编辑器,但我不确定这是正确的方法.如果这是唯一的方法,那就必须如此.

非常感谢

python django django-admin content-management-system feincms

6
推荐指数
1
解决办法
711
查看次数

根据用户自定义feincms页面管理员

我试图找到一种方法来过滤基于用户提供的页面对象的管理查询集,我考虑过(伪代码):

from feincms... Page

class MyPageAdmin(PageAdmin):
    def __init__(self, *args, **kwargs):
        'monkey business'
        super(MyPageAdmin, self).__init__(*args, **kwargs)

admin.site.unregister(Page)
admin.site.register(Page, MyPageAdmin)
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为feincms检查完全加载的django实例.一个详细的解决方案可能根本不是加载页面模块,而是覆盖页面模型对象或管理员,例如:

from feincms... PageAdmin

class MyPage(Page):
    objects = CustomManager()

admin.site.register(MyPage, PageAdmin)
Run Code Online (Sandbox Code Playgroud)

文档说明可以以类似的方式设置您自己的页面模块,但是对于简单的要求似乎有很多配置.

是否有更简单的方法来覆盖feincms模块的管理查询集或模型管理员?

python django django-admin feincms

6
推荐指数
1
解决办法
537
查看次数

使用RichTextContent中的Feincms MediaFile

是否有标准的解决方案将feincms MediaFile插入RichTextContent表单元素(ckeditor或tinyMCE)?我无法在文档中找到任何内容......现在用户需要在medialib中复制粘贴网址,然后转到页面并粘贴...

django tinymce ckeditor feincms

6
推荐指数
1
解决办法
415
查看次数

从django Feincms转储数据

我在django项目中使用feincms并且我想使用manage.py dumpdata但我什么都没得到:

python manage.py dumpdata feincms                 
[]
Run Code Online (Sandbox Code Playgroud)

python django django-manage.py feincms

5
推荐指数
2
解决办法
466
查看次数

Feincms混合内容类型

我有一个问题,我想知道我是否可以将2个现有的contenTypes混合成一个自定义的contenType.我需要使用contenType RichTextContent和ImageContent自己的内容类型,以便我可以使用特殊模板向右显示图像和向左显示文本.

这可能吗 ?.

django-models django-views django-class-based-views feincms

5
推荐指数
1
解决办法
430
查看次数

在页面管理中重新排列FeinCMS内容类型的字段

我让内容类型继承RichTextContent并添加一些字段,如标题.

class SimpleTextContent(RichTextContent):
    title = models.CharField(max_length=20)
    ...
Run Code Online (Sandbox Code Playgroud)

遗憾的是,在页面管理中,文本字段将显示在相应的内联管理员的顶部.但是首先出现会更好title.

如何更改内容类型的内联管理员中字段的顺序?

django django-forms django-admin feincms

3
推荐指数
1
解决办法
90
查看次数

使用 django-mptt 制作 FeinCMS 页面树的副本更改子顺序

我正在尝试制作使用 django-mptt 管理的 FeinCMS 页面树的副本。我写了这个函数:

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.tree.move_node(new_page, parent)

    # re-read so django-mptt fields get updated
    new_page = Page.objects.get(id=new_page.id)
    for child in page.get_children():
        # re-read so django-mptt fields get updated
        child = Page.objects.get(id=child.id)
        make_tree_copy(child, new_page)
Run Code Online (Sandbox Code Playgroud)

并调用它使用

make_tree_copy(Page.tree.root_nodes()[0])
Run Code Online (Sandbox Code Playgroud)

它一般有效,但是当我有一个看起来像这样的页面树时:

A
|- B
   |- C
   |- D
Run Code Online (Sandbox Code Playgroud)

它出来是这样的:

A
|- B
   |- D
   |- C
Run Code Online (Sandbox Code Playgroud)

从我逐步完成 mptt 代码来看,神奇似乎发生在 mptt/managers.py/_inter_tree_move_and_close_gap() 中,由于某种原因,孙子的“lft”值发生了变化。在移动之前它们是 C=3,D=5,之后它们是 C=5,D=3。 …

django mptt django-mptt feincms

2
推荐指数
1
解决办法
1516
查看次数