如何在django-rest-framework中设置raw_id_fields?

Ben*_*ueg 6 django-rest-framework

在Django admin中,可以设置raw_id_fields以获得搜索小部件而不是选择框.当外键表很大时,这非常简洁,可以节省大量的数据库查询.

Django Rest Framework可浏览视图中的等价物是什么?

pis*_*329 6

Django Rest Framework 3不再支持序列化器字段上的widget属性.但是为了使您的可浏览API可用,请尝试更改style要使用的属性'base_template': 'input.html',如下例所示:

class CustomerAddressSerializer(serializers.ModelSerializer):
    customer = serializers.IntegerField(source='customer_id' style={'base_template': 'input.html', 'placeholder': "Customer ID"})
    class Meta:
        model = models.CustomerAddress
        fields = ('id', 'customer', 'street', 'zip', 'city')
Run Code Online (Sandbox Code Playgroud)

这样,select带有数千个外键的巨大标签options将变为简单文本input.欲了解更多信息,请访问http://www.django-rest-framework.org/topics/browsable-api/#handling-choicefield-with-large-numbers-of-items查看文档