所以我将一些应用程序从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可以接受的一些文档,而我在任何地方都找不到它。我觉得有点愚蠢,因为它似乎很容易找到。谁能开导我?我只是错过了一些明显的东西吗?任何意见,将不胜感激。谢谢!
答案 0 :(得分:1)
我想用外键字段的文本输入替换select,但同样在文档中只找到几个例子,例如http://www.django-rest-framework.org/topics/3.0-announcement/#the-style-keyword-argument-for-serializer-fields
感谢调试工具栏,我可以找到每个序列化器字段的默认样式以及磁盘上的实际位置:从那里,我可以查看source directory以查看可用值
答案 1 :(得分:-2)
使用窗口小部件属性定义表单字段类型: *喜欢这个
code = serializers.CharField(widget=forms.Textarea())
您可能正在使用DRF v2.x.x,它不支持Field类中的样式参数