Отношения внешнего ключа с булевыми значениями

Я работаю над одной функцией. У меня есть три различных типа автомобилей (седан, хэтчбек, внедорожник):

Category(models.Model):
    id-
    name-
    image-

Всего у меня 6 функций.

Feature(models.Model):
    id-
    name-
    detail-
    image-

Из 6 функций 4 есть в каждом автомобиле. Вторая категория автомобилей имеет 5, а третья - все 6 функций. Здесь я застреваю: Мне нужно отправить все 6 функций во всех категориях на фронтенд, чтобы если кто-то нажмет на первую категорию, ему были показаны все 6, а 2 недоступные функции были вычеркнуты или отключены или что-то в этом роде. В общем, должно быть какое-то булево значение, которое показывает, что эта функция в этой категории True или False.

Как я могу проектировать таблицы?

Отношения n:m Многие ко многим представлены в виде таблицы мостов

А это будет выглядеть так (режимы сокращены)

from django.db import models

class Category(models.Model):
    name = models.CharField(max_length=30, db_index=True)


class Feature(models.Model):
    name = models.CharField(max_length=30, db_index=True)
    categories = models.ManyToManyField(Category, through='CategoryFeature')


class CategoryFeature(models.Model):
    feature= models.ForeignKey(Feature, on_delete=models.CASCADE)
    category = models.ForeignKey(Category, on_delete=models.CASCADE)
Вернуться на верх