[英]How can I solve strftime TypeError when making a POST request in Django?
我正在使用 Django 创建一个包含 DateTimeField 的 API,但我收到以下错误“TypeError:descriptor 'strftime' for 'datetime.date' 对象不适用于 'str' 对象” 我曾尝试检查不同的来源,但我还没有找到解决办法。
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 "Попробуйте снова"
我认为解决此问题的一种简单方法是使用文档中所述的datetime.strptime
根据给定格式将对象转换为字符串
您的视图现在将写为:
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
将字符串解析为给定相应格式的日期时间对象。 (根据日期时间文档)
datetime 有两种方法:
在你的情况下,你需要第二个。 你的代码将是:
start_date = datetime.strptime(request.POST['start_date'],'%Y-%m-%d')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.