如何在数据库的1列下添加多个值

时间:2019-05-24 20:29:27

标签: django

我需要创建一个模型,使我可以在同一列下存储多个值。我不确定这是否可行,或者我正在考虑正确的方法。任何反馈都将不胜感激。

TaskID = models.CharField(max_length=128)
SubtaskID = models.CharField(max_length=128)
SubtaskNode = models.CharField(max_length=24)
SubtaskStatus = models.CharField(max_length=10)

在我的项目中,您可以创建一个任务,该任务输出任务ID供以后查询。在一个任务中,还创建了n个子任务。所以我想知道如何在TaskID上存储子任务的多个值?

它们外观的结构示例:

TaskID = c07de590-678f-45a2-b6ac-1110c201037b
SubtaskID1 = 87da261e-530d-40e8-8a8b-b61507c6eba2
SubtaskNode1 = Node1
SubtaskStatus1 = Waiting
SubtaskID2 = 140bb0a4-2cdb-46f0-b62d-9187592ae1e9
SubtaskNode2 = Node2
SubtaskStatus2 = Waiting
SubtaskID3 = 43e64d3a-a088-4aae-8a57-64e1c4dfba08
SubtaskNode3 = Node3
SubtaskStatus3 = Finished
SubtaskID4 = 324083fb-b9e9-471f-8946-21ed426fc646
SubtaskNode4 = Node4
SubtaskStatus4 = Failed

所有这些的目的是为了以后在我的模板中创建一个for循环,以列出TaskID值下的所有SubtaskID。

2 个答案:

答案 0 :(得分:0)

您可以创建一个自引用,其中任务记录引用父任务记录,而父记录引用任务记录...和子对象。

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

您可以查询任务子任务,如下所示:

subtasks = Task.objects.get(id=id).subtasks

答案 1 :(得分:0)

您可能希望将Task和SubTask保留在不同的模型中,并使用ForeignKey将它们彼此链接。

您的问题标题有点误导,顺便说一句。