簡體   English   中英

django-mptt在標准ModelAdmin中嵌套了下拉菜單?

[英]django-mptt nested dropdown in standard ModelAdmin?

我使用的Django MPTTCategory模式,這是一個外鍵,一個Project模型:

from django.db import models
from mptt.models import MPTTModel, TreeForeignKey

class Category(MPTTModel):
    name = models.CharField(max_length=255)
    parent = TreeForeignKeyY('self',
            null=True, 
            blank=True, 
            related_name='children'
            )

class Project(models.Model):
    name = models.CharField(max_length=255)
    category = models.ForeignKey('Category')

使用MPTTModelAdmin設置Category admin很容易,並帶有一個漂亮的嵌套下拉列表來選擇parent類別:

from django.contrib import admin
from mptt.admin import MPTTModelAdmin
from myapp.models import Category, Project

admin.site.register(Category, MPTTModelAdmin)

現在我想在我的Project admin中包含一個漂亮的嵌套Category下拉列表,但是標准admin.ModelAdmin不包含此功能,並且子類化MPTTModelAdmin似乎不起作用:

項目沒有名為“父”的字段

是否可以模仿非MPTT管理工具中的嵌套下拉菜單?

您仍然可以使用TreeForeignKey在非MPTTModel ,假設鏈接的模型是一個MPTTModel ,即:

class Project(models.Model):
    name = models.CharField(max_length=255)
    category = TreeForeignKey('Category')

或者,您可以將字段mptt.forms.TreeNodeChoiceField mptt.forms.TreeNodeMultipleChoiceFieldmptt.forms.TreeNodeChoiceFieldmptt.forms.TreeNodeMultipleChoiceField的實例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM