2013-05-09 96 views
1

我想在保存記錄時更新相關模型時間戳。這裏是我的模型:更新相關模型中的auto_now DateTimeField

class Issue(models.Model): 
    issueTitle = models.CharField() 
    issueDescription = models.TextField() 
    issueCreatedDateTime = models.DateTimeField(auto_now_add=True) 

    def __unicode__(self): 
     return self.issueTitle 

class IssueHistory(models.Model): 
    fk_issueID = models.ForeignKey(Issue) 
    issuehistoryDetail = models.TextField() 
    issuehistoryCreatedBy = models.ForeignKey(User) 
    issuehistoryCreatedDateTime = models.DateTimeField(auto_now=True) 

    def __unicode__(self): 
     return self.fk_issueID 

    def save(self): #1.1 
     # Call parent's `save` function 
     # Record is saved like it would be normally, without the override 
     super(IssueHistory, self).save() #1.2 

     #This is where i believe i should be updating the "issueCreatedDateTime" to the same datetime 

post描述想要的,但最終的代碼是不貼(除非我誤解的話)。

爲了進一步澄清,這是事件的期望的順序:)

  1. 保存一個新的問題的歷史記錄
  2. 保存(被覆蓋,使用自定義
  3. IssueHistory記錄保存
  4. 相關問題記錄的「issueCreatedDateTime」字段已更新爲當前日期時間

我應該怎麼做?

回答

0
def save(self): 
    super(IssueHistory, self).save() #1.2 

    # Set Issue issueCreatedDateTime to the same as IssueHistory issueCreatedDateTime 
    self.fk_issueID.issueCreatedDateTime = self.issuehistoryCreatedDateTime 
    # Save the Issue 
    self.fk_issueID.save() 
+0

謝謝,這工作,但我詳細的模型是我的完整模型的子集。當我現在點擊保存時,它也更新字段「issCreatedDateTime = models.DateTimeField(auto_now_add = True)」,這應該只發生在記錄創建? (如果這應該是一個新的問題/帖子,讓我知道) – James 2013-05-09 13:23:24

+0

我的錯誤......它充分發揮作用!謝謝!真棒。 「self.fk_issueID.issueCreatedDateTime = self.issuehistoryCreatedDateTime」這一行實際上應該使用issueUpdatedDateTime字段,儘管(對於我想要的) – James 2013-05-09 13:29:59