【问题标题】:Django - Model with lists in a CharFieldDjango - 在 CharField 中具有列表的模型
【发布时间】:2017-08-17 18:33:44
【问题描述】:

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

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)

等等,这似乎很乏味/浪费代码。

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

对缺少代码表示歉意;非常不确定如何解决这个问题,因为我以前没有遇到过这样的事情。

提前致谢!

【问题讨论】:

标签: python django


【解决方案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 中所述的反向关系以另一种方式添加它

【讨论】:

    猜你喜欢
    • 2021-06-11
    • 2011-12-24
    • 2018-10-10
    • 2014-05-14
    • 2013-04-22
    • 2016-08-10
    • 2016-09-18
    • 2014-10-02
    • 1970-01-01
    相关资源
    最近更新 更多