[英]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.