django-rest-framework - 可浏览API中的自动生成形式?

时间:2013-01-31 00:31:38

标签: forms django-models python-2.7 django-rest-framework

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

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

screenshot

3 个答案:

答案 0 :(得分:18)

如果您使用的是基于类的通用视图,那么您将免费获得该视图。尝试以http://restframework.herokuapp.com身份登录的实时教程作为其中一个用户,以便您可以创建一些代码段。例如:user:'max',密码:'max'。

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

例如:

screenshot of form input

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

如果您只是在APIView工作,那么您将获得通用内容输入(例如json),就像您已经包含截图一样,这也很有用,但不太方便作为形式。

答案 1 :(得分:2)

创建一个适合所需表单输入字段的序列化程序类,并将其设置在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

答案 2 :(得分:0)

class MyApiView(APIView):
    """My Demo API View"""
    serializer_class = serializers.MySerializers

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

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