You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django中如何将当前登录用户关联到新建的Account模型对象?

问题根源

你为form对象动态添加的user属性不属于ModelForm定义的处理字段范围,表单执行save()方法时不会识别该属性并同步到模型实例,因此最终入库的Account对象user字段始终为空。

修复方案

修改views.py中的视图逻辑,通过save(commit=False)先拿到未写入数据库的Account实例,手动赋值user字段后再完成入库操作,修改后的代码如下:

# 引入登录校验装饰器,避免未登录用户访问时赋值异常
from django.contrib.auth.decorators import login_required

@login_required
def create_account(request):
    if request.method == 'POST':
        form = AccountForm(request.POST)
        if form.is_valid():
            # 仅生成模型实例,暂不写入数据库
            account_instance = form.save(commit=False)
            # 手动补全user字段
            account_instance.user = request.user
            # 正式写入数据库
            account_instance.save()
            return redirect('accounts')
    else:
        form = AccountForm()
    return render(request,
                  'account/account_create.html',
                  {'form': form})

内容的提问来源于stack exchange,提问作者Florent

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.22 00:24:09