Python中文
首页
教程
问答
标签
搜索
登录
注册
奇怪的ModelViewSet行为
回答此问题可获得
20
贡献值,回答如果被采纳可获得
50
分。
<p>我正在尝试用DRF序列化MPTT树模型。你知道吗</p> <p>我的代码:</p> <pre><code>class SiteTreeCalc(serializers.Field): def to_representation(self, value): return value.exists() # return True if has children, False otherwise class SiteTreeSerializer(serializers.ModelSerializer): children = SiteTreeCalc() class Meta: model = SiteTree fields = ('id', 'site', 'children') depth = 1 class SiteTreeViewSet(viewsets.ModelViewSet): #queryset = SiteTree.objects.all() serializer_class = SiteTreeSerializer def get_queryset(self): if 'pk' not in self.kwargs: # return first-level nodes return SiteTree.objects.filter(level=0) else: # return all children of a given node return SiteTree.objects.filter(parent__id=int(self.kwargs['pk'])) router = routers.DefaultRouter() router.register(r'rest/sitetree', SiteTreeViewSet, "SiteTreeRoots") router.register(r'rest/sitetree/(?P<tree_id>\d+)/$', SiteTreeViewSet, "SiteTreeChildren") </code></pre> <p>我对此代码有两个问题:</p> <ol> <li>我在路由器注册中声明了参数“tree\u id”。但是,<code>get_queryset</code>表示参数名是<code>pk</code></li> <li>第二个过滤器永远不起作用(应该返回给定父级的子级的过滤器)。DRF返回“detail”:“找不到”。如果在调试器中测试该行,它自然会返回给定父级的所有子级。你知道吗</li> </ol> <p>我好像做错了什么,但代码对我来说太明显了,我就是看不见。你知道吗</p> <p>一如既往,非常感谢您的帮助。你知道吗</p>
0 条评论
分类:
Python问答
请先
登录
后评论
默认排序
时间排序
1 个回答
匿名
1天前
擅长:python、mysql、java
<p>关于1。您需要在viewset上设置lookup\u url\u kwarg(url中的命名参数),以便它映射到树id。</s></p> <p>请注意,路由器本身确实定义了动态url部分。你知道吗</p> <p>至于2。大多数情况下都是用表单内容类型发送JOSN POST数据。确保在请求的标头中发送正确的内容类型。你知道吗</p> <p>编辑: 丹尼尔的观点是1。使用当前的url模式,无法区分详细的顶部节点和子节点的列表。你知道吗</p>
请先
登录
后评论
针对此问题:
更多的回答
关注
89
关注
收藏
1
收藏,
216
浏览
网友 提问于 2天前
相关Python问题
我想从用户inpu创建一个类的实例
3 回答
我想从用户导入值,为此
8 回答
我想从用户那里得到一个整数输入,然后让for循环遍历该数字,然后调用一个函数多次
7 回答
我想从用户那里收到一个列表,并在其中执行一些步骤,然后在步骤完成后将其打印回来,但它没有按照我想要的方式工作
6 回答
我想从用户那里获取输入,并将值传递给(average=dict[x]/6),然后在那里获取resu
8 回答
我想从第一个列表中展示第一个词,然后从第二个列表中展示十个词,以此类推- Python
3 回答
我想从第一个空lin开始解析文本文件
2 回答
我想从简历、简历中提取特定部分
8 回答
我想从给定字典(python)的字符串中删除\u00a9、\u201d和类似的字符。
7 回答
我想从给定的网站Lin下载许多文件扩展名相同的Wget或Python文件
9 回答
我想从网上搜集一些关于抵押贷款的数据
4 回答
我想从网站上删除电子邮件地址
4 回答
我想从网站上读取数据该网站包含可下载的文件,然后我想用python脚本把它发送给oracle如何?
3 回答
我想从网站中提取数据,然后将其显示在我的网页上
7 回答
我想从网页上提取统计数据。
1 回答
我想从网页上解析首都城市,并在用户输入国家时在终端上打印它们
8 回答
我想从色彩图中删除前n个颜色,而不丢失原始颜色数
8 回答
我想从课堂上打印字典里的键
8 回答
我想从费用表中获取学生上次支付的费用,其中学生id=id
4 回答
我想从较低的顺序对多重列表进行排序,但我无法在一行中生成结果
2 回答