2016-07-03 18 views
0

Как показать категории в качестве древа в администраторе Django с помощью MPTT?Показать как дерево

Я сделал это показать список категорий в виде дерева:

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'Новости' 
+0

как вы создаете новую статью? – e4c5

+0

@ e4c5 в Django admin – Viktor

ответ

1

Вы должны использовать TreeForeignKey в модели ребенка:

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