首页 > 解决方案 > 向模型中但不在表单中的数据库字段添加值

问题描述

我有一个模型,其属性名为 authID,如下所示: authID = models.CharField(max_length=400) 在我看来,我表单中的所有字段都被放入数据库中,如下所示:

if request.method == 'POST':
  form = PersonalDetailsModelForm(request.POST)
  if form.is_valid():
     form.save()

我想知道如何做的是,当他们提交表单时,我还想将 authID 的值放入我的数据库中。但是,authID 不是我表单中的字段。出于安全原因,我也不想将其设为隐藏字段。如何将值添加到模型中但不在表单中的数据库字段?

标签: django

解决方案


调用save()Django Form 的方法commit=False

#views.py
if request.method == 'POST':
    form = PersonalDetailsModelForm(request.POST)
    if form.is_valid():
        model_instance = form.save(commit=False) # 'commit=False' plays key role here
        model_instance.authID = 'your auth id'
        model_instance.save()
        ...

参考

  1. Django模型表单save()方法

推荐阅读