Python django-外键模型序列化程序中的键错误
我检查了所有相关问题,但仍然好奇是否有更新的答案 因此,我有一个模型,它有三个外键,接下来,当我试图使用该模型获得响应时,它们在列表中的键中添加了“\u id”-因此每当我序列化,我都会在“错误处得到”keyrerror 错误:Python django-外键模型序列化程序中的键错误,python,django,serialization,Python,Django,Serialization,我检查了所有相关问题,但仍然好奇是否有更新的答案 因此,我有一个模型,它有三个外键,接下来,当我试图使用该模型获得响应时,它们在列表中的键中添加了“\u id”-因此每当我序列化,我都会在“错误处得到”keyrerror 错误: class UserSkillUpvotes(models.Model): unique_together = (('user_skill', 'upvote_by'),) skill = models.ForeignKey('Skill',on_de
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__'
/api/v1/user/skill/upvows/1“skill”处的键错误
型号:
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__'
序列化程序:
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)
我通过不从对象获取所有值来解决问题。 学习了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))