Django Rest Framework 序列化器作为表单和嵌套关系
Posted
技术标签:
【中文标题】Django Rest Framework 序列化器作为表单和嵌套关系【英文标题】:Django Rest Framework serializers as forms and nested relationships 【发布时间】:2017-05-24 07:20:48 【问题描述】:我正在尝试使用 django rest 框架来生成用于模型创建的 html 表单。假设我有一个序列化程序,它属于具有ManyToMany
关系的模型。
class SerializerExample(serializers.ModelSerializer):
mtm = ManyToManySerializer(many=True)
然后,我在 django 休息视图中,
class AddModelView(StandardView):
serializer_class = ModelSerializer
renderer_classes = [TemplateHTMLRenderer]
template_name = 'details.html'
def get(self, request):
model = Model.objects.get.all()
serializer = ModelSerializer(model)
return Response('serializer': serializer, 'model': model)
然后假设 details.html 看起来像:
% load rest_framework %
<html><body>
<form method="POST">
% csrf_token %
% render_form serializer %
<input type="submit" value="Save">
</form>
</body></html>
Lists are not currently supported in HTML input.
而不是多选或添加新实例的能力。我做错了什么?
【问题讨论】:
【参考方案1】:你没有错过任何东西。这是正在进行的工作。 如果需要 HTML 表单,请使用带有嵌套序列化程序的 JSON,或者不要使用嵌套序列化程序。
【讨论】:
是否有为按照 w3c 标准在 json 中创建表单的序列化程序创建 json 表单? 我过去曾使用选项从 json 部分中获取自动表单。见django-rest-framework.org/api-guide/metadata 我实际上是自己写的。非常适合我的反应前端。很快就会在github上发布。 有意思,告诉我们吧。以上是关于Django Rest Framework 序列化器作为表单和嵌套关系的主要内容,如果未能解决你的问题,请参考以下文章
python django-rest-framework 3.3.3 更新嵌套序列化程序
django-rest-framework、多表模型继承、ModelSerializers 和嵌套序列化器
Django.rest_framework:如何序列化一对多?
Django 序列化器与 rest_framework 序列化器