我想做以下事情:
用我的模特
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>