【发布时间】:2021-07-04 02:15:48
【问题描述】:
我有一个函数,它通过将星期数作为参数输出星期五
def fridayOfWeek(p_week):
p_year=2021
monday = datetime.datetime.strptime(f'{p_year}-W{int(p_week )- 1}-1', "%Y-W%W-%w").date()
wednesday = monday + datetime.timedelta(days=2)
friday = monday + datetime.timedelta(days=6.9) - datetime.timedelta(days=2)
return friday
但是当我序列化数据并设置时
serialize = ExamSimulatorSerializer(request.data)
date = fridayOfWeek(serializer["week"])
它给了我一个错误
File "C:\Users\user1\Desktop\backend\data_manager\views.py", line 43, in examSimulator
date = fridayOfWeek(m['week'])
File "C:\Users\user1\Desktop\backend\week_into_date.py", line 10, in fridayOfWeek
monday = datetime.datetime.strptime(f'{p_year}-W{int(p_week )- 1}-1', "%Y-W%W-%w").date()
Exception Type: TypeError at /api/exam-simulator/
Exception Value: int() argument must be a string, a bytes-like object or a number, not 'BoundField'
我的序列化程序类是:
class ExamSimulatorSerializer(serializers.Serializer):
week = serializers.IntegerField()
subject = serializers.CharField()
code = serializers.CharField()
def create(self, validated_data):
pass
我的意见.py
@api_view(['POST'])
@parser_classes([JSONParser])
def examSimulator(request):
m = ExamSimulatorSerializer(request.data)
code = m['code']
date = fridayOfWeek(m['week'])
subject = Subject.objects.get(name = m['subject'])
for s in subject.students.all().values():
student = Student.objects.get(roll_num=s['roll_num'])
score = random.randint(25,95)
Exam.objects.create(code=code, date=date, student=student, subject=subject,score=score)
return Response(status=status.HTTP_200_OK)
此外,这是制作无模型序列化程序类的正确方法吗
【问题讨论】:
标签: python django django-rest-framework django-serializer