你如何在api中包含相关字段?

class Foo(models.Model):
    name = models.CharField(...)

class Bar(models.Model):
    foo = models.ForeignKey(Foo)
    description = models.CharField()

每个 Foo 都有几个与他相关的 Bar,例如图像或其他任何东西。

如何让这些 Bar 显示在 Foo 的资源中?

使用tastypie,它很简单,我不确定Django Rest Framework ..

最佳答案

我让它工作了!亲爱的!

好的,这就是我所做的:

如 Django REST Framework 的快速入门文档中所述,为 Bar 对象创建了序列化程序、 View 和 URL。

然后在 Foo Serializer 中我做了这个:

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

实际上它真的很简单,文档只是没有很好地显示它我会说..

关于Django Rest Framework - 反向关系,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14262819/

10-16 11:04