【问题标题】:How can I solve strftime TypeError when making a POST request in Django?在 Django 中发出 POST 请求时如何解决 strftime TypeError?
【发布时间】:2021-12-09 12:52:03
【问题描述】:

我正在使用 Django 创建一个包含 DateTimeField 的 API,但我收到以下错误“TypeError:descriptor 'strftime' for 'datetime.date' objects does not apply to a 'str' object”我试过检查不同的来源,但我还没有找到解决方案。

  • 错误是由 start_date 行引起的。
from datetime import datetime

def question_view(request):
    if request.method == 'GET':
        return HttpResponse("Вопрос не создан")
    elif request.method == 'POST':
        poll_question = request.POST['poll_question']
        title = request.POST['title']
        start_date = datetime.strftime(request.POST['start_date'],'%Y-%m-%d')
        Question.objects.create(poll_question=poll_question,title=title, start_date=start_date)
        return HttpResponse("Вопрос создан")
    else:
        return "Попробуйте снова"

【问题讨论】:

标签: python django api django-rest-framework


【解决方案1】:

datetime有两种方法:

  • strftime:用于将日期对象转换为字符串。
  • strptime:用于将字符串转换为日期对象。

在您的情况下,您需要第二个。您的代码将是:

start_date = datetime.strptime(request.POST['start_date'],'%Y-%m-%d')

【讨论】:

    【解决方案2】:

    我认为解决此问题的一种简单方法是使用datetime.strptime 根据给定格式将对象转换为字符串,如doc 中所述

    您的视图现在将写为:

    from datetime import datetime
    
    def question_view(request):
        if request.method == 'GET':
            return HttpResponse("Вопрос не создан")
        elif request.method == 'POST':
            poll_question = request.POST['poll_question']
            title = request.POST['title']
            start_date = datetime.strptime(request.POST['start_date'],'%Y-%m-%d')
            Question.objects.create(poll_question=poll_question,title=title, start_date=start_date)
            return HttpResponse("Вопрос создан")
        else:
            return "Попробуйте снова"
    

    strptime 将字符串解析为给定相应格式的日期时间对象。 (根据日期时间文档)

    【讨论】:

      猜你喜欢
      • 2019-10-31
      • 2021-07-24
      • 2021-07-28
      • 1970-01-01
      • 2021-08-17
      • 2021-05-24
      • 2018-03-15
      • 2015-04-12
      • 1970-01-01
      相关资源
      最近更新 更多