HyperlinkedRelatedField临时为read_only

时间:2018-02-12 21:33:52

标签: django-rest-framework

我按以下方式声明了字段:

field = serializers.HyperlinkedRelatedField(
    view_name='field-detail',
    source='feature',
    queryset=Field.objects.all()
)

你知道我怎么能暂时将这样的字段设置为read_only吗? 不幸的是,这种结构不起作用:(

serializer.Meta.extra_kwargs = {
    'field': {'queryset': None, 'read_only': True}
}

当字段在模型中声明为ForeignKey时,它工作正常。

class Foo(models.Model):
    field = models.ForeignKey(...)

class FooSerializer(serializers.HyperlinkedModelSerializer):

    class Meta:
        model = Foo
        fields = ('url', 'field',...)

然后(如上所述),甚至:

serializer.Meta.read_only_fields = ('field',)

1 个答案:

答案 0 :(得分:1)

尝试传递read_only属性,同时在使用HyperlinkedRelatedField

时声明字段
field = serializers.HyperlinkedRelatedField(
    view_name='field-detail',
    lookup_field='feature',
    # set read_only to True
    read_only=True 
)
  

阅读文档:hyperlinkedmodelserializer