视图中的Django 1.6格式日期时间

时间:2015-10-06 13:08:56

标签: python django datetime

我的模板中的预订表单会在提交时发送电子邮件。在我的数据库中,日期时间字段显示为:Oct. 6, 2015, 3:58 p.m.但是当我收到电子邮件时,日期时间字段显示为:2015-10-06 15:58:50.954102如何格式化,以便在电子邮件中显示的确切喜欢它在数据库中的显示方式?

models.py

class Booking(models.Model):
    patient_name = models.CharField(max_length=1300)
    phone = models.IntegerField(null=True, blank = True)
    preference = models.CharField(max_length=150,null = True, blank = True) #morning,noon,night
    doctor = models.ForeignKey(Doctor)
    clinic = models.ForeignKey(Clinic,null=True, blank = True)
    datetime = models.DateTimeField(auto_now=True, auto_now_add=True, blank = True, null = True)


    def __unicode__(self):
        return u"%s %s" % (self.patient_name, self.doctor)

views.py

 lead = Booking(doctor_id=doctor.id, clinic_id=doctor.clinic.id, preference=preference, patient_name=patient_name, phone=phone)
 lead.save()
 body = "Request Made: " + str(lead.datetime) +" "
 email = EmailMessage('Blah', body, to=[clinic.email])
 email.send()

2 个答案:

答案 0 :(得分:3)

您可以使用strftime

格式化日期字符串
>>> from datetime import date
>>> dt = date(2015, 10, 6, 15, 58, 50)
>>> dt.strftime("%b. %-d %Y %-I:%M %p")
'Oct. 6 2015 2:12 PM'

http://strftime.org/

处有strftime的代码列表

因此,在您看来,您会做类似

的事情
body = "Request Made: %s " % lead.datetime.strftime("%b. %-d %Y %-I:%M %p")

答案 1 :(得分:2)

这不完全是数据库中的内容,它只是用于在数据库中查看的工具,显示日期时间。

但是,如果您希望日期时间看起来与此完全相同,请使用:

lead.datetime.strftime("%b. %-d %Y %-I:%M %p")

以下是一些相关来源: https://docs.python.org/2/library/datetime.html#datetime.datetime https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior