我正在使用Python 3.5,Django 2.0和Django REST Framework 3.7.7 我在我的应用程序中添加了django-jalali 3.0.2以获得jalali calelndar兼容性。这个应用程序在使用admin或shell时工作正常,但是当我使用DRF发送请求时,使用公历来验证datetime对象。因此,我不能使用日期与1397-02-31或1397-02-30字符串。这是我得到的回应:
HTTP 400错误请求 允许:GET,POST,HEAD,OPTIONS Content-Type:application / json 变化:接受
{
"schedule_time": [
"Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format."
]
}
这个错误来自django_jalali / db / models.py的第252行
try: # Seconds are optional, so try converting seconds first.
t = time.strptime(datetime_obj, '%Y-%m-%d %H:%M:%S')
因为srtptime假定datetime_obj
是Datetime对象而不是jDatetime。如前所述,这不是admin或shell中的问题。我还测试了将区域设置设置为'fa_IR'
并更改了对象管理器但到目前为止没有运气。有没有一个干净的解决方案或我是否必须编写自己的应用程序?
P.S。我注意到admin中的date_hierarchy
仅使用Datetime(而不是jDatetime)。我尝试改变它,但它失败了django检查。我该怎么把这个改成jalali?
我也在django-jalali github页面上发布了这个问题,仍在等待答案。