15

不确定我是否使用了正确的词汇。在 django-rest-framework 免费提供的可浏览 api 中,我想知道是否有一种方法可以自动生成类似于我们定义 ModelForms 的表单。在某些情况下,这将使我们能够更轻松地测试 API 的输入。我目前正在使用 ModelSerializers 和通用视图 APIView 以防万一。

我已经阅读了文档(此时已阅读了好几次),但没有在任何地方看到它。

截屏

4

3 回答 3

19

如果您使用通用的基于类的视图,您将免费获得它。尝试http://restframework.herokuapp.com上的实时教程,以用户之一的身份登录,以便您可以创建一些片段。例如用户:'max',密码:'max'。

任何视图子类化GenericAPIView和设置 aserializer_class都会获得该行为,因为 REST 框架可以确定表单的外观。

例如:

表单输入截图

(注意屏幕截图底部的表单输入)

如果您刚刚开始工作,APIView您将获得通用内容输入(例如 json),就像您包含屏幕截图一样,这也很有用,但不如表单那么方便。

于 2013-01-31T13:32:03.070 回答
6

创建一个适合您想要的表单输入字段的序列化程序类,并将其设置在您的 APIView 上,如下所示;

class MyView(APIView):
    serializer_class = MySerializer  # Used for the form in the browsable api

这非常有效。

基于模型的序列化程序类示例:

from rest_framework import serializers

class MySerializer(serializers.ModelSerializer):
    class Meta:
        model = MyModel
于 2016-12-09T15:39:33.250 回答
0
class MyApiView(APIView):
    """My Demo API View"""
    serializer_class = serializers.MySerializers

确保您使用的是名称“serializer_class”,而不是任何其他名称,如 serializers_class。

使用确切的“serializer_class”将在可浏览的 API 中自动生成表单

于 2020-04-02T23:02:15.837 回答