feat(problemset): 用户奖章接口带出所属题单
成就页的奖章列表只有奖章本身,看不出来自哪个题单。UserBadgeSerializer
补一个 problemset 字段,查询改 select_related("badge__problemset") —— 这是
异步视图,不预加载会在异步上下文里发同步查询。
This commit is contained in:
@@ -287,11 +287,18 @@ class UserBadgeSerializer(serializers.ModelSerializer):
|
||||
"""用户奖章序列化器"""
|
||||
|
||||
badge = ProblemSetBadgeSerializer()
|
||||
# 成就页只拿到奖章本身,看不出是哪个题单发的,这里把题单带出来。
|
||||
# 只在这个序列化器上加:题单详情页里的奖章列表本来就在题单上下文中,不需要
|
||||
problemset = serializers.SerializerMethodField()
|
||||
|
||||
class Meta:
|
||||
model = UserBadge
|
||||
fields = "__all__"
|
||||
|
||||
def get_problemset(self, obj):
|
||||
problemset = obj.badge.problemset
|
||||
return {"id": problemset.id, "title": problemset.title}
|
||||
|
||||
|
||||
class JoinProblemSetSerializer(serializers.Serializer):
|
||||
"""加入题单序列化器"""
|
||||
|
||||
Reference in New Issue
Block a user