Django基本模型逻辑

时间:2020-02-25 20:42:35

标签: django django-models

寻找一种创建具有很多任务的模型的方法,每个任务都是布尔值(“ Completed”,“ Uncompleted”),并且它也是自己的唯一时间戳记。

class project(models.Model):
  task1 = models.BooleanField()
  task1date = models.DateTimeField()
[...]

这对我没有任何意义,因为任务很多。每个任务都有其自己的标题,每个项目的标题都保持不变(如果有的话,可以列出任务列表),但是我需要在特定项目上完成任务的时间使用正确的时间戳。我想念什么?

1 个答案:

答案 0 :(得分:2)

您制作了一个额外的模型Task,其中包含三个字段competedtimestamp和一个ForeignKeyProject

class Task(models.Model):
    completed = models.BooleanField(default=False)
    timestamp = models.DateTimeField(auto_now_add=True)
    project = models.ForeignKey(Project, related_name='tasks', on_delete=models.CASCADE)

因此,这里的Task是指Project。与给定的Task相关联,您可以根据需要创建Project个。例如:

Task.objects.create(project=my_project)

其中my_projectProject对象。

您可以使用以下方法访问Task的与相关Project对象集:

myproject.tasks.all()

有关更多信息,请参阅文档的many-to-one relations section

注意:通常是Django模型,就像Python中的所有类在 PerlCase 中都有一个名称,而不是 snake_case 一样,因此它应该是:Project而不是 project