这里的小困境;我想允许用户创建一个任务列表(通过模型表单),这些任务将存储在数据库中,以便他们将来读取或更新每个字段(例如,将任务标记为已完成)。 在模型中,我创造了类似的东西......
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)
等,这似乎相当繁琐/浪费代码。
或者我应该以某种方式尝试将一系列字符串存储为列表?
对缺乏代码表示歉意;非常不确定如何处理这个问题,因为我之前没有遇到过这样的问题。
提前致谢!
答案 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
中所述的反向关系以另一种方式添加它