Django - 具有许多类别和许多子类别的对象

时间:2017-08-17 22:49:00

标签: django django-models categories

我一直在努力争取这个模型。 我正在开发音乐行业的公司目录。我们已有500家公司的数据库。我们有以下类别:音频,视频,照明,舞台,音乐仪器,人才,学校和DJ。

此类别具有此子类别。 - 音频:录音,安装,租赁,零售 - 视频:安装,租赁,零售 - 照明:安装,租赁,零售 - 阶段:酒吧,迪斯科舞厅,剧院,体育场馆 - 音乐仪器:零售,租赁 - 人才:经理,唱片公司,预订 - 学校:音频,制作,戏剧,舞蹈 - Dj:预订,零售

许多公司进入许多类别,在这些类别中,他们进入许多子类别。

实施例: X公司销售视频和音频产品,但也提供音频产品的安装服务。 所以X公司 - 音频:零售,安装。 - 视频:零售

在您看来,我如何才能设计模型????

先谢谢。

这是我的代码,但它错了。

1 个答案:

答案 0 :(得分:0)

以下方法只是解决问题的一种简单方法,它可能不是最有效的方法,但它解决了整个问题。

models.py

class SubCategory(models.Model):
    name = models.CharField(max_length=255)

    def __str__(self):
        return self.name

class Category(models.Model):
    name = models.CharField(max_length=255)
    sub_categories = models.ManyToManyField(SubCategory, blank=True, default=None)

    def __str__(self):
        return self.name


class Company(models.Model):
    name = models.CharField(max_length=255)
    categories = models.ManyToManyField(Category, blank=True, default=None)
    sub_categories = models.ManyToManyField(SubCategory, blank=True, default=None)

    def __str__(self):
        return self.name