在Django admin中,可以设置raw_id_fields以获得搜索小部件而不是选择框。当外键表很大时,这非常简洁,可以节省大量的数据库查询。
Django Rest Framework可浏览视图中的等效内容是什么?
答案 0 :(得分:5)
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')
这样,包含数千个外键select
的巨大options
代码将更改为简单文本input
。有关详情,请查看http://www.django-rest-framework.org/topics/browsable-api/#handling-choicefield-with-large-numbers-of-items
答案 1 :(得分:1)
目前没有什么可以支持的。我很确定拉取请求会受到欢迎。
答案 2 :(得分:0)
借调卡尔顿所说的话,虽然在实施之前在票证中讨论是值得的。
或者,您可能需要查看使用自动完成小部件...
http://www.django-rest-framework.org/topics/browsable-api/#autocomplete