渲染表单ViewSet Django Rest框架

我想做以下事情:

用我的模特

class User(models.Model):
   id = models.AutoField(primary_key=True)
   field1 = models.CharField(max_length=100)
   fk1 = models.ForeignKey(Group)
goes on

在此之后,我创建了我的Serializer,它看起来像:

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = UserSerializer
        fields = (...)

    ...

最后,我创建了我的ViewSet,它应该如下所示:

class UserViewSet(viewsets.ModelViewSet):
    queryset = User.objects.all()
    serializer_class = UserSerializer

但是现在,我怎么能够创建一个viewSet,例如,用我的类生成一个表单?我的最终想法是能够做到这样的事情:

def my_view(request):
   my_form = UserViewSet.as_view({'get': 'list'}(request))
   # from here either to be able to use .render().content
   # or, inside the template, render with {% render_form my_form %}

这可能吗?谢谢

最佳答案 您所建议的是可能的,但通常没有意义. Django Rest Framework非常适合创建API,以便您可以以该Ji格式发送和接收来自该API的信息.

获取表单涉及从服务器获取呈现的HTML.这对Django本身来说是一个更好的任务.您可以使用CreateView来执行您尝试的操作:

def UserCreateView(CreateView):
    model = User
    form_class = "name_of_your_form.html"  # Or you could call the form 'user_create_form.html` and leave this line out.
    fields = [...]

根据文档,您的表单将在您的模板中提供:

<form action="" method="post">{% csrf_token %}
    {{ form.as_p }}
    <input type="submit" value="Save" />
</form>
点赞