Django - 无法从查询集中检索多对多字段
Django - Can't retrieve Many to Many field from Queryset
我有以下代码:
exercises = Exercise.objects.filter(teacher=request.user.id).values('id', 'question', 'ans1', 'ans2', 'ans3', 'correct', 'unit', 'resol', 'theme', 'img')
这很好用,但是“主题”是一个多对多字段,格式 returns { ..., theme: value }
而不是 { ..., theme: [value1, value2] }
我应该实施什么以获得所需的格式?
通过执行以下操作使其工作:
try:
exercises = Exercise.objects.filter(teacher=request.user.id)
ids = exercises.values_list('id', flat=True)
reloaded_qs = Exercise.objects.all()
reloaded_qs.query = pickle.loads(pickle.dumps(ids.query))
exercise_serializer = ExerciseSerializer(exercises, many=True)
if exercise_serializer.is_valid:
for val, q in enumerate(reloaded_qs):
exercise_serializer.data[val].update(q)
except BaseException as e:
return JsonResponse({ 'v': False, 'm': str(e) }, safe=False)
return JsonResponse(exercise_serializer.data, safe=False)
我有以下代码:
exercises = Exercise.objects.filter(teacher=request.user.id).values('id', 'question', 'ans1', 'ans2', 'ans3', 'correct', 'unit', 'resol', 'theme', 'img')
这很好用,但是“主题”是一个多对多字段,格式 returns { ..., theme: value }
而不是 { ..., theme: [value1, value2] }
我应该实施什么以获得所需的格式?
通过执行以下操作使其工作:
try:
exercises = Exercise.objects.filter(teacher=request.user.id)
ids = exercises.values_list('id', flat=True)
reloaded_qs = Exercise.objects.all()
reloaded_qs.query = pickle.loads(pickle.dumps(ids.query))
exercise_serializer = ExerciseSerializer(exercises, many=True)
if exercise_serializer.is_valid:
for val, q in enumerate(reloaded_qs):
exercise_serializer.data[val].update(q)
except BaseException as e:
return JsonResponse({ 'v': False, 'm': str(e) }, safe=False)
return JsonResponse(exercise_serializer.data, safe=False)