簡體   English   中英

如何創建與另一個相關的模型以生成列表

[英]How to create a model related to another to generate a list

我正在嘗試創建一個todolist,用戶可以在其中創建“早晨例程”等任務列表,並將它們直接導入我的todo應用程序。

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正在工作,但我無法弄清楚如何鏈接它們並將列表從待辦事項導入TodoList

多謝你們

如果您在TodoList的list屬性中添加了ManyToManyField來代替ForeignKey,它可能會執行您所需的操作。

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)

然后你會通過這樣做獲得列表:

todolist1.todos.all()

參考: httpsTodoList其中該示例中的Article等同於TodoList ,而Publication等同於Todo

編輯:從TodoList中刪除項目將如下所示:

todolist1.todos.remove(todo1)

.remove()不會完全刪除待辦事項,因此todo1仍然會出現在其他的待辦事項中。 為了完全從所有的todolists中刪除todo,你會做類似的事情。

todo1.delete()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM