1

我正在使用 Python 3.5、Django 2.0 和 Django REST Framework 3.7.7 我将django-jalali 3.0.2添加到我的应用程序中以实现 jalali calelndar 兼容性。此应用程序在使用 admin 或 shell 时运行良好,但当我使用 DRF 发送请求时,日期时间对象使用公历进行验证。因此,我不能将日期与像 1397-02-31 或 1397-02-30 这样的字符串一起使用。这是我得到的回应:

HTTP 400 错误请求允许:GET、POST、HEAD、OPTIONS 内容类型: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'和更改对象管理器,但到目前为止还没有运气。有没有一个干净的解决方案,还是我必须编写自己的应用程序?

PS 我date_hierarchy在管理员中注意到只使用日期时间(而不是 jDatetime)。我尝试更改它,但它未能通过 django 检查。我怎样才能将其更改为 jalali?

我也在django-jalali github 页面上将此作为问题发布,但仍在等待答案。

4

0 回答 0