Я пытаюсь создать простую доску стиля kanban для моего приложения диспетчера задач в Django 3.0.3. Я уже написал код для проектов и задач, но у меня возникают проблемы с поиском наилучшего способа создания моделей для плат kanban. В настоящее время у меня есть две модели, но могу ли я сделать это в одной для простоты?
Мое базовое требование c заключается в том, что у каждого проекта может быть своя собственная плата, и у каждой платы будет несколько панелей. Вот пример:
Плата: Разработка
- Отставание
- Начато
- Разработка
- et c .. .
Плата: Операции
- Запрошено
- Работает
- В ожидании
- и c ...
Имея только одну модель, я не уверен, будет ли у нее такая гибкость, которая мне необходима для ее полной разработки. Но наличие нескольких моделей может быть слишком громоздким для конечного пользователя. Вот мои текущие модели:
class Board(models.Model):
"""
Defines Kanban boards
"""
name = models.CharField(max_length=25)
slug = models.SlugField(default="")
project = models.ForeignKey(Project, on_delete=models.CASCADE)
tags = TaggableManager(blank=True)
def __str__(self):
board_name = self.project.name + ":" + self.name
return board_name
class BoardPanel(models.Model):
"""
Defines panels in project board
"""
title = models.CharField(max_length=30)
slug = models.SlugField(default="")
board = models.ForeignKey(Board, on_delete=models.CASCADE)
tasks = models.ManyToManyField(Task)
def __str__(self):
panel_name = self.board.name + ":" + self.title
return panel_name