2

我在检索日期时间列时遇到问题。model.field 没有返回正确的日期时间,而是返回 None。

模型 CustomerPeriod 定义如下:

class CustomerPeriod(models.Model):
    id = models.DecimalField(primary_key=True, decimal_places=0, max_digits=22)
    customer_id = models.ForeignKey(Customer)
    begin_date = models.DateTimeField()
    end_date = models.DateTimeField()

例如,该表填充如下:

customer_period = CustomerPeriod()
customer_period.id = Decimal('1118632')
customer_period.customer_id = 1
customer_period.begin_date = datetime.datetime(2008, 8, 15, 5, 0)
customer_period.end_date = datetime.datetime(2008, 8, 15, 6, 0)

customer_period.save()

现在,尝试获取 begin_date 字段的值,返回 null 而不是预期的日期,如上所示。

CustomerPeriod.objects.all()[0].begin_date

返回无???

此外,我可以在数据库浏览器中看到预期的数据。

提前感谢您的帮助。

版本:

  • Sqlite3 3.7.12
  • Python 2.7.4
  • Django 1.5.4

斯图尔特

4

1 回答 1

3

不确定这是否仍然悬而未决,但我自己刚刚处理了这个问题。您需要确保 sqlite db 的列类型是 datetime。如果它只是日期而不是当您尝试使用 python 将其拉出时返回 None 。如果是,则删除该表并重新同步。

于 2014-02-12T22:17:14.257 回答