SlugRelatedField对Django Rest Framework序列化没有任何影响

时间:2015-08-04 15:55:14

标签: django serialization django-rest-framework

所有

我正在尝试用相关模型中的字段替换标准的外键字段序列化。

以下是一些代码:

class Foo(models.Model):
  name = models.CharField()
  bar = models.ForeignKey("Bar")

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

class FooSerializer(serializers.ModelSerializer):
  class Meta:
    model = Foo
    fields = ("id", "name", "bar", )
  bar = serializers.SlugRelatedField(read_only=True, slug_field="name")

但不管我做什么,它使用bar实例的pk序列化,而不是它的名字。

关于我做错的任何想法?

感谢。

1 个答案:

答案 0 :(得分:1)

尝试这样做:

class FooSerializer(serializers.ModelSerializer):
    bar = serializers.StringRelatedField(read_only=True)

    class Meta:
        model = Foo
        fields = ("id", "name", "bar", )

这应该只返回字符串格式的名称。