首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django模型与mptt集成

Django模型与mptt集成
EN

Stack Overflow用户
提问于 2014-04-08 18:51:22
回答 1查看 155关注 0票数 1

我有一个django模型,如下所示:

代码语言:javascript
复制
from django.db import models
from mptt.models import MPTTModel, TreeForeignKey

class deg_course_cat(models.Model):
    degree_code = models.CharField(max_length=24)
    specialization = models.CharField(max_length=48)
    category_level1 = models.CharField(max_length=48)
    category_level2 = models.CharField(max_length=96)
    category_level3 = models.CharField(max_length=48)
    min_credit = models.IntegerField()
    max_credit = models.IntegerField()
    primarystuff = models.CharField(max_length=24)

class deg_course_cat_mptt(MPTTModel):
    name = models.CharField(max_length=100, unique=False)
    min_credit = models.IntegerField(null=True)
    max_credit = models.IntegerField(null=True)
    parent = TreeForeignKey('self', null=True, blank=True, related_name='children')

    class MPTTMeta:
        order_insertion_by = ['name']

# Create your models here.

django模型deg_course_cat表中的数据如下所示:

我想根据模型及其数据创建mptt结构,即类似于以下结构:

我该如何处理这个问题?因为我对python有点陌生,所以如果我对实现这个目标有了一个认识,那就太好了。

我尝试过以下代码,但不确定它是否正确:

代码语言:javascript
复制
from studentapp.models import deg_course_cat, deg_course_cat_mptt

#degreeroot = deg_course_cat_mptt.objects.create(name="DegreeRoot")

for degrees in deg_course_cat.objects.values_list('degree_code', flat=True):
    degreearray = set(deg_course_cat.objects.values_list('degree_code', flat=True))
    for i in range(0,len(degreearray)):
        degree(i) = deg_course_cat_mptt.objects.create(name= degreearray(i), parent=degreeroot)

        for categories_l1 in deg_course_cat.objects.values_list('category_level1', flat=True):
        category_level1 = set(deg_course_cat.objects.values_list('category_level1', flat=True))

            for categories_l2 in deg_course_cat.objects.values_list('category_level2', flat=True):
            category_level2 = set(deg_course_cat.objects.values_list('category_level2', flat=True))

            for categories_l3 in deg_course_cat.objects.values_list('category_level3', flat=True):
            category_level3 = set(deg_course_cat.objects.values_list('category_level3', flat=True))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-04-15 16:48:07

你可以做一些像this这样的事情

代码语言:javascript
复制
category_l1_array = list(set(deg_course_cat.objects.filter(degree_code=degree[i]).values_list('category_level1', flat=True)))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22945759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档