我正在尝试创建一个待办事项列表,用户可以在其中创建诸如“早晨例行程序”之类的任务列表,并将其直接导入到我的待办事项应用程序中。
Models.py Todo 和 TodoList
class Todo(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE,verbose_name="Nom de l'utilisateur")
text = models.CharField(max_length=150, verbose_name="Nom de la Todo")
content = models.TextField(verbose_name="Description supplémentaire",null=True, blank=True)
class TodoList(models.Model):
list = models.ForeignKey(Todo, on_delete=models.CASCADE,verbose_name="Nom de l'utilisateur")
text = models.CharField(max_length=150, verbose_name="Nom de la Todo")
我的todoApp工作正常,但是我不知道如何链接它们并将列表从todo导入TodoList
谢谢大家
答案 0 :(得分:0)
如果您添加了ManyToManyField代替TodoList的WinGet, OutputVar, List
属性上的ForeignKey,那么它可能会满足您的需求。
list
然后按照您的应用逻辑,您可以执行以下操作:
class Todo(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE,verbose_name="Nom de l'utilisateur")
text = models.CharField(max_length=150, verbose_name="Nom de la Todo")
content = models.TextField(verbose_name="Description supplémentaire",null=True, blank=True)
class TodoList(models.Model):
list = models.ManyToManyField(Todo, verbose_name="Nom de l'utilisateur")
text = models.CharField(max_length=150, verbose_name="Nom de la Todo")
然后您将通过以下操作获得列表:
todolist1 = TodoList(text='Stuff to do before tonight')
toddolist1.save()
todo1 = Todo(author=author_obj, text="Brush teeth", content="Remember to floss")
todo1.save()
todo2 = Todo(author=author_obj, text="Comb hair", content="Use water")
todo2.save()
todolist1.todos.add(todo1, todo2)
引用:https://docs.djangoproject.com/en/dev/topics/db/examples/many_to_many/,其中该示例中的todolist1.todos.all()
等效于Article
,而TodoList
等效于Publication
。
编辑: 从TodoList中删除一个项目看起来像这样:
Todo
todolist1.todos.remove(todo1)
不会完全删除待办事项,因此.remove()
仍会出现在其他Todolists中。要完全删除所有待办事项中的待办事项,您可以做类似的事情。
todo1