您好我是Django的新手,我正在尝试使用Project模型和Task模型创建应用程序。每个项目都有一个或多个任务。我想要做的是添加一个TaskHistory模型,每个任务都有一个或多个任务历史。每次我在我的任务中改变一些东西(因为这将是我必须编辑的东西)我希望创建一个新的关联TaskHistory。有可能吗?
答案 0 :(得分:1)
这是可能的,但可能会在应用程序/视图层而不是直接在Django模型中编码。您尝试的内容似乎与作为标准django.contrib.admin
应用程序一部分创建的日志条目非常匹配,因此您应该在此应用程序中查找想法。每次在管理界面中更新,创建或删除对象时,django.contrib.admin
都会将条目记录到LogEntry
表。
您的应用程序可能需要存储模型内容的更改,例如任务描述的更改,而不仅仅是创建任务。要实现此目的,您可能需要当前任务对象和更新的任务详细信息才能创建TaskHistory
对象。
每个能够修改任务的视图还包括可以创建TaskHistory
对象的逻辑,并将更新的/新Task
和TaskHistory
对象保存为独立模型对象,可能包含在数据库级事务中,以使更改以原子方式显示。