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