python - 如何从确切的故事中获取剧集
问题描述
我有情节,这与带有 url 的故事(外键)有关
router = routers.DefaultRouter()
router.register('', StoryView, basename='stories')
router.register('episodes', EpisodeView, basename='episodes')
看法:
class EpisodeView(viewsets.ModelViewSet):
楷模:
class Story(models.Model):
title = models.CharField(max_length=255)
description = models.TextField(max_length=255)
cover = models.ImageField(upload_to=upload_location)
genre = models.ManyToManyField(Genre)
author = models.ForeignKey(get_user_model(), on_delete=models.CASCADE)
created_at = models.DateTimeField(auto_now_add=True)
class Episode(models.Model):
title = models.CharField(max_length=255)
cover = models.ImageField(upload_to=upload_location)
story = models.ForeignKey(Story, on_delete=models.CASCADE)
created_at = models.DateTimeField(auto_now_add=True)
episode_number = models.IntegerField(null=True)
我需要获取故事情节。这种情况怎么办?
解决方案
您必须添加路由器才能获取剧集 ID
router = routers.DefaultRouter()
router.register('', StoryView, basename='stories')
router.register('episodes', EpisodeView, basename='episodes')
router.register('(?P<story_id>[0-9]+)/episodes', StoryEpisodeView, basename='episodes')
然后为 StoryEpisodeView 编写更新列表方法:
def get_queryset(self):
return Episode.objects.filter(story_id=self.story_id)
def list(self, request, *args, **kwargs):
self.story_id = kwargs.get(story_id)
super(request, *args, **kwargs)
推荐阅读
- node.js - 我正在使用 React-native 和 node js。在得到 Node js 的响应后,我无法从一个屏幕导航到另一个屏幕
- android - 谷歌地图上的优步风格信息窗口
- python - 在 python 中(plt.table 在第一行设置 rowColours)
- python - 如何将 python 实例共享给 C++?
- spring - Spring:如何在 Spring MVC 中使用会话
- docker - Docker compose 在脚本下载文件之前
- xml - 元素“workOrder”:没有可用于验证根的匹配全局声明
- ssl - 将 .cer 转换为 .pem 返回错误“无法加载证书”
- python-2.7 - 在 python 中使用 urllib 库清除缓存
- python - python结构:设置环境变量