从Django表单序列化

Exo*_*xos 2 django django-forms django-rest-framework

我正在将传统的django网站迁移到API Restful。

我有一个大表格已经在工作。此表单当前是Django.forms.Form对象,我想将其提交到rest 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():
            # ...
Run Code Online (Sandbox Code Playgroud)

PS。对不起我的英语

Exo*_*xos 5

好吧,我收到一个朋友的回复,他给了我:

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

  • 请不要仅用链接来回答,因为它将来可能会消失。您应该直接在答案中包含关键信息 https://stackoverflow.com/help/how-to-answer (3认同)