寻找一种创建具有很多任务的模型的方法,每个任务都是布尔值(“ Completed”,“ Uncompleted”),并且它也是自己的唯一时间戳记。
class project(models.Model):
task1 = models.BooleanField()
task1date = models.DateTimeField()
[...]
这对我没有任何意义,因为任务很多。每个任务都有其自己的标题,每个项目的标题都保持不变(如果有的话,可以列出任务列表),但是我需要在特定项目上完成任务的时间使用正确的时间戳。我想念什么?
答案 0 :(得分:2)
您制作了一个额外的模型Task
,其中包含三个字段competed
,timestamp
和一个ForeignKey
至Project
:
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_project
是Project
对象。
您可以使用以下方法访问Task
的与相关的Project
对象集:
myproject.tasks.all()
有关更多信息,请参阅文档的many-to-one relations section。
注意:通常是Django模型,就像Python中的所有类在 PerlCase 中都有一个名称,而不是 snake_case 一样,因此它应该是:
Project
而不是。project