在从模型A编辑对象时从模型B创建对象?

时间:2013-06-03 08:46:30

标签: django

您好我是Django的新手,我正在尝试使用Project模型和Task模型创建应用程序。每个项目都有一个或多个任务。我想要做的是添加一个TaskHistory模型,每个任务都有一个或多个任务历史。每次我在我的任务中改变一些东西(因为这将是我必须编辑的东西)我希望创建一个新的关联TaskHistory。有可能吗?

1 个答案:

答案 0 :(得分:1)

这是可能的,但可能会在应用程序/视图层而不是直接在Django模型中编码。您尝试的内容似乎与作为标准django.contrib.admin应用程序一部分创建的日志条目非常匹配,因此您应该在此应用程序中查找想法。每次在管理界面中更新,创建或删除对象时,django.contrib.admin都会将条目记录到LogEntry表。

您的应用程序可能需要存储模型内容的更改,例如任务描述的更改,而不仅仅是创建任务。要实现此目的,您可能需要当前任务对象和更新的任务详细信息才能创建TaskHistory对象。

每个能够修改任务的视图还包括可以创建TaskHistory对象的逻辑,并将更新的/新TaskTaskHistory对象保存为独立模型对象,可能包含在数据库级事务中,以使更改以原子方式显示。