从 Django 表单序列化

Posted

技术标签:

【中文标题】从 Django 表单序列化【英文标题】:Serialize from a Django form 【发布时间】:2017-01-11 21:16:03 【问题描述】:

我正在将一个传统的 django 站点迁移到一个 API Restful。

我有一个大表格已经在工作了。这个表单目前是一个 Django.forms.Form 对象,我想将它的提交发送到一个休息 API 点。

我想做一些与ModelSerializer 类似的事情,但从 Form 对象而不是 Model。

这个项目有一些表单(不是基于模型的),我想重用这个代码。

很遗憾,我没有找到如何直接从 Form 进行序列化程序。

我想做的例子

class LargeAndUgglyForm(forms.Form):

    email = forms.CharField(
        required=True,
        max_length=100,
        widget=forms.TextInput(
            attrs=
                'placeholder': _('Correo electrónico')))

    password1 = forms.CharField(required=True, widget=forms.PasswordInput(
        attrs='placeholder': _(u'Contraseña')))

    password2 = forms.CharField(required=True, widget=forms.PasswordInput(
        attrs='placeholder': _(u'Repetir contraseña')))

    name_company = forms.CharField(
        required=True,
        max_length=100,
        widget=forms.TextInput(
            attrs=
                'placeholder': _('Nombre de la Empresa')))

    # ... and much more fields


class SignupSerializer(???):
    Meta:
        form = LargeAndUgglyForm

    def create(self, validated_data):

        form_instance = LargeAndUgglyForm(validated_data)

        if form_instance.is_valid():
            # ...

PS。对不起我的英语

【问题讨论】:

【参考方案1】:

嗯,我收到了朋友的回复,他给了我:

https://django-rest-framework-braces.readthedocs.io/en/latest/overview.html#formserializer

【讨论】:

请不要只用链接回答,因为它可能会在将来消失。您应该直接在答案中包含关键信息***.com/help/how-to-answer

以上是关于从 Django 表单序列化的主要内容,如果未能解决你的问题,请参考以下文章

Django 更新序列化程序和唯一的约束

是否可以在 django rest 框架序列化程序中使用重用 django 表单进行验证?

Django 表单 (下) - 序列化操作

Django Rest Framework 序列化器作为表单和嵌套关系

Django Tastypie 反序列化多部分/表单数据以上传文件

python测试开发django-165.form表单序列化json的2种方式