Django Rest框架-反向关系
如何在api中包含相关字段Django Rest框架-反向关系,django,django-rest-framework,tastypie,Django,Django Rest Framework,Tastypie,如何在api中包含相关字段 class Foo(models.Model): name = models.CharField(...) class Bar(models.Model): foo = models.ForeignKey(Foo) description = models.CharField() 每个Foo都有一些与他相关的酒吧,比如图片或者其他什么 如何在Foo的资源中显示这些栏 有了tastypie,退出就简单了,我不确定Django Rest框架能不
class Foo(models.Model):
name = models.CharField(...)
class Bar(models.Model):
foo = models.ForeignKey(Foo)
description = models.CharField()
每个Foo都有一些与他相关的酒吧,比如图片或者其他什么
如何在Foo的资源中显示这些栏
有了tastypie,退出就简单了,我不确定Django Rest框架能不能正常工作。!嘘 好的,这就是我所做的: 按照Django REST框架的Quickstart文档中的描述,为Bar对象创建序列化程序、视图和URL 然后在Foo序列化程序中,我执行了以下操作:
class FooSerializer(serializers.HyperlinkedModelSerializer):
# note the name bar should be the same than the model Bar
bar = serializers.ManyHyperlinkedRelatedField(
source='bar_set', # this is the model class name (and add set, this is how you call the reverse relation of bar)
view_name='bar-detail' # the name of the URL, required
)
class Meta:
model = Listing
实际上,它非常简单,文档只是没有很好地显示出来,我想说..现在,您只需将反向关系添加到
字段
元组即可实现这一点
就你而言:
class FooSerializer(serializers.ModelSerializer):
class Meta:
model = Foo
fields = (
'name',
'bar_set',
)
现在“bar”集将包含在您的Foo响应中。我无法使上述功能正常工作,因为我有一个名为
FooSomething
的模型
我发现以下几点对我有用
# models.py
class FooSomething(models.Model):
name = models.CharField(...)
class Bar(models.Model):
foo = models.ForeignKey(FooSomething, related_name='foosomethings')
description = models.CharField()
# serializer.py
class FooSomethingSerializer(serializers.ModelSerializer):
foosomethings = serializers.StringRelatedField(many=True)
class Meta:
model = FooSomething
fields = (
'name',
'foosomethings',
)
这对我不起作用。我收到一个错误,说无法解析url。我已经在我的rest/url.py中添加了这个url,它可以正常工作。不确定我做错了什么。我也在做同样的事情,在嵌套的响应中,假设有4个相关的条,然后我得到4个空的JSON,我不知道为什么这不起作用,计数正确起作用如果
bar
模型被称为SomethingBar
,会发生什么<代码>某个条形图集和某个条形图集
都不起作用:(