小编Jon*_*nas的帖子

如何在Geodjango/GEOS中将公里数转换为度?

我正在使用GEOS API中的"缓冲"方法根据GeoDjango中的点和半径创建一个圆,根据这个答案:GeoDjango:如何根据点和半径创建一个圆

正如一位评论者指出的那样,你必须将半径以km为单位转换为......但是如何?我想这是一个快速的公式,但它对我来说是希腊语.我会感激任何指针.

python gis django geodjango

14
推荐指数
3
解决办法
2万
查看次数

使用 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
查看次数

标签 统计

django ×2

django-mptt ×1

feincms ×1

geodjango ×1

gis ×1

mptt ×1

python ×1