Django DateTimeField TypeError:期望的字符串或类字节对象

时间:2017-03-24 20:23:06

标签: python django django-rest-framework

我知道有很多关于此错误的帖子。例如:thisthis one

但我已经知道了。这就是我疯了的原因。

当我创建一个实例并尝试保存它时,我没有问题:

per_detail.preview_title = per_detail.details_sample.preview_title
per_detail.icon = per_detail.details_sample.icon
per_detail.content = fill_content(per_detail)
per_detail.save()

容易。

但是当已经存在实例时,我会再次尝试保存它(更新它)。然后我收到了这个错误:

match = datetime_re.match(value)
     

TypeError:期望的字符串或类似字节的对象

使用此代码:

personal_detail_sample = kwargs['instance']
        personal_details = PersonalDetail.objects.filter(Q(details_sample=personal_detail_sample))
        for per_detail in personal_details:
            per_detail_updated = fill_updated_content(personal_detail_sample, per_detail)
            per_detail_updated.save()

我得说,在我尝试更新该实例的地方并不重要,我总是得到同样的错误。 (所以,这不是因为kwargs['instance']

这就是领域,这就是麻烦:

sent_date = models.DateTimeField(_('sent_date'), null=True, blank=True)

正如您可能注意到的那样,我从未填写过“sent_date”字段,但它应该为null。所以它应该不是问题。为了安全起见,我也尝试过:

per_detail.sent_date = *a date*
per_detail.save()

我得到了同样的错误。

我不知道它会是什么。

也许有人可以帮助我。

1 个答案:

答案 0 :(得分:0)

我在该字段中收到错误" date"不是" sent_date"。

我很抱歉。 " date"的领域在 models.py 中是:

date = models.DateTimeField(_('date'), auto_now_add=True)但数据库中time without time zone而非timestamp without time zone。为什么?谁知道......

我删除了sent_date字段,并看到日期有另一个错误,这就是我发现错误的原因。

非常感谢那些试图提供帮助的人!