【发布时间】:2017-03-24 20:23:05
【问题描述】:
我知道有很多关于这个错误的帖子。如:this和this 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”字段,但它应该为空。所以应该问题不大。为了安全起见,我也尝试过:
per_detail.sent_date = *a date*
per_detail.save()
我也遇到了同样的错误。
我不知道会是什么。
也许有人可以帮助我。
【问题讨论】:
-
value不是字符串或类似字节的对象(可能是 Unicode,可能是 Django 字段类型 - 没有详细阅读您的问题),无论如何您应该打印它的值/类型/repr - 或设置断点并检查它... -
移除 auto_now_add 并重试
-
没有机会...我删除了 auto_now_add 并进行了调试,得到了
sent_date = None,对于数据库来说它是“null”并且我允许它。为了以防万一,我做了几次“makemigrations”和“migrate”,结果相同。 :(我不知道... -
我也用
sent_date = 2017-03-24 20:37:48.584796(调试)做了per_detail_updated.sent_date = datetime.datetime.now(),得到了同样的错误。我正在考虑擦除所有迁移并再次进行迁移...... -
删除迁移并再次解决问题。
标签: python django django-rest-framework