Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在一个更新视图中提交两个表单_Python_Django - Fatal编程技术网

Python 如何在一个更新视图中提交两个表单

Python 如何在一个更新视图中提交两个表单,python,django,Python,Django,我正在搜索如何在一个视图中使用两个不同的提交按钮提交两个表单 class EditAvatarForm(forms.ModelForm): class Meta: model = Person fields = ('avatar',) def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.user_created =

我正在搜索如何在一个视图中使用两个不同的提交按钮提交两个表单

class EditAvatarForm(forms.ModelForm):
    class Meta:
        model = Person
        fields = ('avatar',)

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.user_created = None

        avatar = forms.ImageField(required=True, )

        self.fields = OrderedDict(
            [
                ("avatar", avatar),

            ]
        )

    def clean_avatar(self):
        image = self.files.get('avatar')
        if image:
            try:
                creator = None
                if self.instance:
                    creator = self.instance
                    # ?That simple? Yes!:
                return ImageFile.objects.create(
                    image_file=image, creator=creator
                )
            except IOError:
                self.add_error('avatar', _("Unknown image type"))
        return None

    def clean(self):
        return super().clean()


class EditProfileForm(forms.ModelForm):

    class Meta:
        model = User
        fields = ("username", "first_name", "last_name", "email",)
这是forms.py,我希望能够在单个视图中更改化身和用户信息。 Person是与用户相关的模型,具有
User=models.OneToOneField(User,blank=True,null=True,on_delete=models.CASCADE)

并且与imageFile相关,带有
avatar=models.ForeignKey(imageFile,default=None,blank=True,null=True,related\u name=“persons”,on\u delete=models.SET\u null),可以使用Ajax吗。创建请求时,在ajax主体的请求负载中添加表单名称。在你的更新视图中,你可以这样做
假设我有一个名为“testform”的表单1和一个名为testform2的表单2

if request.method == "POST" and request.is_ajax():
     if 'testform' in request.POST.get('form_name'):
         #your update logic for this form
     elif 'testform2' in request.POST.get('form_name'):
         #your update logic for this form