如何在 Django 中保存之前将值添加到表单中

问题描述 投票:0回答:1

我希望用户填写一些表单,然后添加用户的 id 和用户的分支(来自另一个表,通过关系)以在保存之前添加到表单数据中。表单还有其他字段,例如{type,serialno,model,date},提交后我想将userid和branchid添加到该表单值并将其提交到数据库

这是我的观点.py enter image description here

我尝试覆盖表单数据,如图所示。但是,它一直向我显示“TypeError”的错误消息

python django
1个回答
0
投票

您可以采取两种方式:

  1. 覆盖模型的保存方法并按以下方式使用保存:

form.save(用户=用户,分支=分支)



class YourForm(forms.ModelForm):
    class Meta:
        model = YourModel
        fields = ['type', 'serialno', 'model', 'date']

    def save(self, user, branch, commit=True):
        instance = super(YourForm, self).save(commit=False)
        instance.user = user
        instance.branch = branch

        if commit:
            instance.save()

        return instance

  1. 当 .save() 方法创建 Form 类的对象时,您可以调用 .save(commit=False) 方法,修改创建的实例的用户和分支,然后调用实际保存到数据库。


    instance = form.save(commit=False)
    
    instance.user = user
    instance.branch = branch
    
    instance.save()

© www.soinside.com 2019 - 2024. All rights reserved.