是否可以在 Django 中以一种形式创建两个不同的提交按钮?

Is it possible to create two different submit button in one form in Django?

所以我正在处理我的 Django 项目,运行 遇到了一个问题。我有一个自定义 ModelForm,我正在尝试两种不同的作品。我正在尝试为表单创建两个提交按钮,一个用于正常提交,另一个用于更改输入数据然后提交。

例如,假设我的表单中有 name 字段。如果用户单击按钮 A,则提交 name。但是,如果用户单击按钮 B,我希望 name 字段作为 name@gmail.com 提交。
是否可以让两个按钮在一个 Django 表单中以不同的方式工作?提前致谢。

这是可能的,在你看来你会这样做:

class SomeView(UpdateView):
    
    ...

    def form_valid(self, form):
        self.object = form.save(commit=False)
        if 'add-email' in self.request.POST:
            self.object.name = f'{self.object.name}@gmail.com'
            
        self.object.save()

然后在您的模板中:

<form ...>
    <button type="submit" name="save">Submit</button>
    <button type="submit" name="add-email">Submit with Email</button>
</form>