我正在创建一个简单的待办应用程序,仅用于学习Python和Django。我当前的代码:
def create_task(request):
# code for creating a task
def delete_task(request, task_id):
# code for deleting task
def show(request, task_id):
# show a task
def list(request):
# show list of tasks
def create_sub_task(request):
# code for creating a sub_task
def delete_sub_task(request, sub_task_id):
# code for deleting sub_task
def flip_sub_task_completed(request, sub_task_id)
# make a sub_task completed/uncompleted
如您所见,任务包含子任务。一切正常。但是我认为最好将Task和SubTask分开,并为它们创建2个类。会更好吗?我将如何继续实现这一目标?我需要如何更改urlpatterns = [
才能使其正常工作?非常感谢!
编辑: models.py:
class Task(models.Model):
description = models.CharField(max_length=250)
user = models.ForeignKey(User, on_delete=models.CASCADE)
class SubTask(models.Model):
description = models.CharField(max_length=250)
completed = models.BooleanField(default=False)
task = models.ForeignKey(Task, on_delete=models.CASCADE)
答案 0 :(得分:1)
为子任务创建一个单独的模型可能更好,而不是-在您的parent
模型中添加一个Task
外键;父母的任务是子任务:
class Task(models.Model):
# ...
parent = models.ForeignKey('self', related_name='subtasks')
如果您需要多级层次结构,我建议您研究Django-Treebeard或Django-MPTT,它们可用于在Django模型中对树进行有效建模。