[英]django - key error in serializer with foreign key models
我检查了所有相关问题,但仍然想知道是否存在更新的答案。
因此,我有一个具有三个外键的模型,接下来,当我尝试使用该模型获取响应时,它们在List中的键会附加“ _id”-因此,每当我进行序列化时 ,都会得到“ KeyError at”错误。
错误:
/ api / v1 / user / skill / upvotes / 1'skill'处的KeyError
型号:
class UserSkillUpvotes(models.Model):
unique_together = (('user_skill', 'upvote_by'),)
skill = models.ForeignKey('Skill',on_delete=models.CASCADE , related_name='all_upvote_for_user_skill')
upvote_by = models.ForeignKey('auth.User',on_delete=models.CASCADE , related_name='all_upvote_by_user')
upvote_for = models.ForeignKey('auth.User',on_delete=models.CASCADE , related_name='all_upvote_for_user')
序列化器:
class UserSkillUpvotesSerializer(serializers.ModelSerializer):
class Meta:
model=UserSkillUpvotes
fields='__all__'
查看:如果request.method =='GET':
try:
user_skill_upvotes = list(UserSkillUpvotes.objects.filter(upvote_for=pk).all().values()) # get all upvotes on skills of the requested user
except (UserSkillUpvotes.DoesNotExist,User.DoesNotExist) as e:
return HttpResponse(status=404)
serializer = UserSkillUpvotesSerializer(user_skill_upvotes,many=True)
return Response(serializer.data)
控制台错误-
File "C:\code\django\wantedly\src\wantedly_webapp\views\AllViews.py", line 75, in user_skill_upvotes
return Response(serializer.data)
我通过不从Object获取所有值来解决了我的问题。 学习了ORM的基础知识:)
在我看来,我将此行更改为
user_skill_upvotes = list(UserSkillUpvotes.objects.filter(upvote_for=pk).all().values()) # get all upvotes on skills of the requested user
对此
user_skill_upvotes = list(UserSkillUpvotes.objects.filter(upvote_for=pk))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.