Django 我可以用ModelViewSet嵌入联接表资源吗?

Django 我可以用ModelViewSet嵌入联接表资源吗?,django,django-rest-framework,django-views,django-serializer,django-rest-viewsets,Django,Django Rest Framework,Django Views,Django Serializer,Django Rest Viewsets,Django和DRF从本周开始都是全新的,所以我对所有这些东西都很熟悉,但是很快就要结束了——我的训练营课程让我们使用DRF视图集作为基于资源的视图的基类,然后让我们为我们想要添加到返回响应实例中的每个部分使用ModelSerializer 在从联接表嵌入资源的课程中(例如,两个不同的模型作为联接模型上每个ForeignKey字段的基础,如下所示: #importing Model and ForeignKey fields from models module class EventGam

Django和DRF从本周开始都是全新的,所以我对所有这些东西都很熟悉,但是很快就要结束了——我的训练营课程让我们使用DRF视图集作为基于资源的视图的基类,然后让我们为我们想要添加到返回响应实例中的每个部分使用ModelSerializer

在从联接表嵌入资源的课程中(例如,两个不同的模型作为联接模型上每个ForeignKey字段的基础,如下所示:

#importing  Model and ForeignKey fields from models module

class EventGamer(Model): 
    event = ForeignKey('Event', related_name='registration')
    gamer = ForeignKey('Gamer', related_name='registration')
),在我们的list()方法中,我们希望在其中嵌入某个玩家的所有事件,我们的ORM调用如下:

gamer = Gamer.objects.get(user=request.auth.user)
events = Event.objects.filter(registration__gamer=gamer)
因此,我们可以基于该QuerySet上的ModelSerializer父类调用EventSerializer:

class EventSerializer(ModelSerializer):
     class Meta:
       model = Event
       fields = (#fields from that model I want embedded)
然后将结果的data属性中的结果列表附加到我们在Response对象中返回的内容

class GameSerializer(serializers.ModelSerializer):
    class Meta:
        model = Game
        fields = ('id', 'title', 'description', 'designer', 'year_realeased', 'number_of_players', 'time_to_play', 'age_recommendation')

class GamesViewSet(ModelViewSet):
    queryset = Game.objects.all()
    serializer_class = GameSerializer

# WOW THATS IT IM DONE
现在-我最近在另一个项目中偶然发现了ModelViewSet,并对它如何如此轻松地处理所有URL解析-->对应的视图方法逻辑而深深着迷,甚至不必指定响应对象

class GameSerializer(serializers.ModelSerializer):
    class Meta:
        model = Game
        fields = ('id', 'title', 'description', 'designer', 'year_realeased', 'number_of_players', 'time_to_play', 'age_recommendation')

class GamesViewSet(ModelViewSet):
    queryset = Game.objects.all()
    serializer_class = GameSerializer

# WOW THATS IT IM DONE
但是,我不知道如何像前面的例子那样开始尝试嵌入联接资源。(在这个例子中,我有一个GameCography的联接表,所以我想获得并嵌入一个与特定“游戏”关联的所有“类别”的列表。)我承认,我甚至没有100%了解ORM中的反向查找是如何工作的,比如我们如何使用相关的_名称追溯到“事件”,更不用说如何自定义/覆盖/添加要序列化的字段了。现在,序列化的游戏表示只包括模型上的实际字段

TL;DR我想使用ModelViewSet来嵌入联接表中的资源,而不知道从哪里开始

任何关于下一步要学习什么以了解发生了什么的指导/建议都将不胜感激!谢谢