0

我想使用 django mptt 创建类别和子类别系统。我的尝试:

from django.db import models
import mptt


class Category(models.Model):
    name = models.CharField(max_length=255)
    category = models.ForeignKey('self', null=True, blank=True, related_name='children')

mptt.register(Category, order_insertion_by=['name'])

class Post(models.Model):
    title = models.CharField(max_length=255)
    text = models.TextField()
    category = models.ManyToManyField(Category)

我的管理员.py

from django.contrib import admin
from xxxx.xxx.models import *
from mptt.admin import MPTTModelAdmin

admin.site.register(Category, MPTTModelAdmin)
admin.site.register(Post)

我的错误:

类别没有名为“父”的字段

4

1 回答 1

4

Django-mptt 需要名称为 parent 且带有 ForeignKey('self') 的字段

http://django-mptt.github.com/django-mptt/models.html#setting-up-a-django-model-for-mptt

您可以使用以下方法覆盖它:

class Category(models.Model):
    name = models.CharField(max_length=255)
    category = models.ForeignKey('self', null=True, blank=True, related_name='children')

    class MPTTMeta:
        order_insertion_by=['name']
        parent_attr = 'category'
于 2012-09-10T09:38:12.120 回答