Django Rest Framework序列化器字段样式参数

时间:2015-04-23 13:56:55

标签: python django django-rest-framework

所以我将一些应用程序从DRF 2.4迁移到DRF 3.1。已经进行的一项更改是序列化程序字段widget不再是有效参数。相反,我们需要使用style# Use <input type="password"> for the input. password = serializers.CharField( style={'input_type': 'password'} ) # Use a radio input instead of a select input. color_channel = serializers.ChoiceField( choices=['red', 'green', 'blue'] style = {'base_template': 'radio.html'} } 根据documentation期望带有键值对的dict表示字段的呈现方式。他们给出的例子是:

.col-md-3

这是有道理的,但我看到的是我们找到base_template和input_type的有效值的地方。例如,如果我想将一个字段呈现为复选框,我该怎么做?我正在寻找的是关于API可以接受的一些文档,而我在任何地方都找不到它。我觉得有点愚蠢,因为它似乎很容易找到。谁能开导我?我只是错过了一些明显的东西吗?任何意见,将不胜感激。谢谢!

2 个答案:

答案 0 :(得分:1)

我想用外键字段的文本输入替换select,但同样在文档中只找到几个例子,例如http://www.django-rest-framework.org/topics/3.0-announcement/#the-style-keyword-argument-for-serializer-fields

感谢调试工具栏,我可以找到每个序列化器字段的默认样式以及磁盘上的实际位置:django debug toolbar screenshot showing the template paths从那里,我可以查看source directory以查看可用值

答案 1 :(得分:-2)

使用窗口小部件属性定义表单字段类型: *喜欢这个

code = serializers.CharField(widget=forms.Textarea())

您可能正在使用DRF v2.x.x,它不支持Field类中的样式参数