显示选择为

2024-04-26 18:16:51 发布

您现在位置:Python中文网/ 问答频道 /正文

如何使用MPTT在Django管理中将类别显示为树?在

我让它以树的形式显示类别列表:

enter image description here

但当我试图创建一篇新文章时,它不起作用:

enter image description here

如何使其渲染为树选择?在

这是我的模型:

# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models
from mptt.models import MPTTModel, TreeForeignKey
from ckeditor.fields import RichTextField
from taggit.managers import TaggableManager
import os


class Category(MPTTModel):

    name = models.CharField(u'Заголовок', max_length=100, unique=False)
    parent = TreeForeignKey('self', null=True, blank=True, related_name='children', db_index=True,
                            verbose_name=u'Родитель')

    class Meta:
        verbose_name = u'Мероприятие'
        verbose_name_plural = u'Мероприятия'

    class MPTTMeta:
        order_insertion_by = ['name']

    def __unicode__(self):
        return self.name


class Article(models.Model):
    category = models.ForeignKey(Category, on_delete=models.CASCADE, blank=False, verbose_name=u'Раздел')
    title = models.CharField(u'Содержание', max_length=120, blank=False)
    content = RichTextField(u'Содержание', blank=False)
    tags = TaggableManager(u'Тэги')

    class Meta:
        verbose_name = u'Новость'
        verbose_name_plural = u'Новости'

Tags: namefromimportselffalsetrueverbosedb
1条回答
网友
1楼 · 发布于 2024-04-26 18:16:51

您应该在子模型中使用TreeForeignKey

class Article(models.Model):
    category = TreeForeignKey(Category, on_delete=models.CASCADE, blank=False,
    null=False, verbose_name=u'Раздел')
    ...

相关问题 更多 >