簡體   English   中英

無法將datetime.now()保存到DateTimeField

[英]Can't save datetime.now() to DateTimeField

我已經定義了一個模型,如下所示(對問題進行了簡化)

from datetime import datetime, date, timedelta

class Case(models.Model):
    received_email_sent = models.DateTimeField(null=True, blank=True, default=None)

    def send_received_email(self):
        message = settings.EMAIL_HEADER + self.case_received_email() + settings.EMAIL_FOOTER
        send_mail('Subject here', message, settings.EMAIL_HOST_USER, ['xxx@xxx.com'], fail_silently=False)
        self.received_email_sent = datetime.now()

在視圖中,我對現有對象調用send_received_email。 我知道輸入了send_received_email塊是因為每次測試時都會收到電子郵件,但是self.received_email_sent = datetime.now()部分每次都會將該字段保留為其默認值(無)。 這是視圖的相關部分:

from logbook.models import Case

def job_email(request, case_id):
    case = get_object_or_404(Case,pk=case_id)
    case.send_received_email()
    return HttpResponseRedirect('/jobs/'+str(case.case_id))

我還嘗試了一種替代方法,其中保存字段是在視圖中而不是模型中完成,如下所示:

楷模:

class Case(models.Model):
    received_email_sent = models.DateTimeField(null=True, blank=True, default=None)
    def send_received_email(self):
        message = settings.EMAIL_HEADER + self.case_received_email() + settings.EMAIL_FOOTER
        send_mail('Subject here', message, settings.EMAIL_HOST_USER, ['xxx@xxx.com'], fail_silently=False)
        #self.received_email_sent = datetime.now()

意見:

from datetime import datetime
from logbook.models import Case

def job_email(request, case_id):
    case = get_object_or_404(Case,pk=case_id)
    case.send_received_email()
    case.received_email_sent = datetime.now()
    return HttpResponseRedirect('/jobs/'+str(case.case_id))

我還嘗試了上述兩種路線,並進行了各種調整,例如移除now()上的括號,並將from datetime import datetime更改為import datetime 不開心 感謝您對此的關注。

您需要在self.save()的末尾調用send_received_email()

暫無
暫無

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

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