Django - 模型与CharField中的列表

时间:2017-03-24 17:44:45

标签: python django

这里的小困境;我想允许用户创建一个任务列表(通过模型表单),这些任务将存储在数据库中,以便他们将来读取或更新每个字段(例如,将任务标记为已完成)。 在模型中,我创造了类似的东西......

tasks_to_do = models.CharField(max_length=300, null=True)

但是,我希望用户能够根据需要添加任意数量的或不同的任务。我应该做点像......

task_1 = models.CharField(max_length=100, null=True)
task_2 = models.CharField(max_length=100, null=True)
task_3 = models.CharField(max_length=100, null=True)

等,这似乎相当繁琐/浪费代码。

或者我应该以某种方式尝试将一系列字符串存储为列表?

对缺乏代码表示歉意;非常不确定如何处理这个问题,因为我之前没有遇到过这样的问题。

提前致谢!

1 个答案:

答案 0 :(得分:1)

我认为最简单,最明显的解决方案是创建两个独立的模型 - 一个用于任务列表,另一个用于单个任务。

class TodoList(models.Model):
    # you can put here some additional information, like the name of the list, when it was created etc.

class Task(models.Model):
    todo_list = models.ForeignKey(TodoList)
    # you can put extra info about the single task (the creator, date due etc.)

因此,每当您想要在列表中添加新任务时,都会创建另一个Task object,并将todo_list字段的值设置为TodoList object

或者您可以使用docs

中所述的反向关系以另一种方式添加它