将方法放在views.py中的类中

时间:2019-06-18 12:57:31

标签: python django

我正在创建一个简单的待办应用程序,仅用于学习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)

1 个答案:

答案 0 :(得分:1)

为子任务创建一个单独的模型可能更好,而不是-在您的parent模型中添加一个Task外键;父母的任务是子任务:

class Task(models.Model):
    # ...
    parent = models.ForeignKey('self', related_name='subtasks')

如果您需要多级层次结构,我建议您研究Django-Treebeard或Django-MPTT,它们可用于在Django模型中对树进行有效建模。