django RESTframework 做序列化,定义序列化类时怎么自己指向自己。

2018-08-16 21:46:42 +08:00
 junezk
我在使用 django RESTframework 做序列化时遇到定义类时需要自己指向自己的情况。

我在 django 中定义了一个类型的 model:

class Channel(models.Model):
  """
  分类
  """
   name = models.CharField(verbose_name="分类名称", max_length=40)
   display_name = models.CharField(verbose_name="显示名称", max_length=40)
   parent = models.ForeignKey("Channel", null=True, blank=True, related_name="sub_channels", on_delete=models.SET_NULL)


Channel 对象的 parent 属性可以指向自己类型的对象。

做序列化时,就要定义
class ChannelSerializer(serializers.ModelSerializer):
   parent = ChannelSerializer(read_only=True)

   class Meta:
     model = Channel
     fields = '__all__'
这样的代码,这就不符合 Python 的语法了。
请问如何定义这种自己指向自己的类的定义。
1916 次点击
所在节点    Python
2 条回复
dalang
2018-08-16 22:55:04 +08:00
junezk
2018-08-17 09:24:40 +08:00
@dalang 谢谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/480532

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX