【发布时间】:2013-12-14 01:31:04
【问题描述】:
这是原来的类别模型:
class Category(MPTTModel):
name = models.CharField(max_length=50, unique=True)
parent = TreeForeignKey('self', null=True, blank=True, related_name='children')
def __unicode__(self):
return self.name
class MPTTMeta:
order_insertion_by = ['name']
然后我需要订购类别,所以我将其更改如下:
class Category(MPTTModel):
name = models.CharField(max_length=50, unique=True)
order = models.SmallIntegerField() <<<<<<<<<
parent = TreeForeignKey('self', null=True, blank=True, related_name='children')
def __unicode__(self):
return self.name
class MPTTMeta:
order_insertion_by = ['order'] <<<<<<<<<
我更改了 Django 管理员声明:
admin.site.register(Category, MPTTModelAdmin)
收件人:
class CategoryAdmin(MPTTModelAdmin):
list_display = ('name', 'order')
list_editable = ('order',)
admin.site.register(Category, CategoryAdmin)
然后在从管理控制面板进行一些编辑后,一切都崩溃了。我无法准确描述发生了什么,但似乎 lft、rght、level 和 parent_id 被这些更改搞砸了。
我是否在错误的上下文中使用了order_insertion_by?是为了别的吗?我试图搜索文档,但没有得到有用的答案。
【问题讨论】:
标签: python django django-mptt