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

Django提交user_profile表单报错:收到意外关键字参数phoneNumber

Django表单提交报错:user_profile() got an unexpected keyword argument 'phoneNumber' 解决方法

核心问题

你的视图函数和模型类同名了!都叫user_profile。当你在视图里写profile=user_profile(...)时,Python会优先调用当前作用域的视图函数,而不是模型类,这就导致传入的参数和视图函数的参数(仅request)不匹配,所以触发报错。另外你提到的phoneNomber是拼写失误,但根本问题是命名冲突。

解决步骤

方案1:重命名模型类(推荐,符合Django规范)

Django模型类通常用大驼峰命名,把user_profile改成UserProfile:

修改models.py:

class UserProfile(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    phoneNumber = models.CharField(max_length=12, blank=True)
    name = models.CharField(max_length=100, blank=True)
    address = models.CharField(max_length=500, blank=True)

同步修改views.py里的实例化代码:

profile = UserProfile(phoneNumber=phoneNumber, name=name, address=address, user=user)

最后执行数据库迁移:

python manage.py makemigrations
python manage.py migrate

方案2:重命名视图函数

如果不想改动模型,就把视图函数改成user_profile_view这类名称:

修改views.py:

def user_profile_view(request):
    if request.method == "POST":
        phoneNumber = request.POST.get('phoneNumber')
        name = request.POST.get('Name')
        address = request.POST.get('address')
        user = request.user
        print(user)
        profile = user_profile(phoneNumber=phoneNumber, name=name, address=address, user=user)
        profile.save()
    return render(request, "firmApp/blog/user_profile.html")

同时要更新URL配置里的映射,把原来指向user_profile的路径改成user_profile_view。

额外优化建议

  1. 模板里的Name输入框name属性改成小写name,和模型字段保持一致,避免混淆:
<input type="text" class="form-control" name="name" >
  1. 表单里的文件上传字段formFile当前未被处理,若要实现文件上传:
    • 模型添加ImageField/FileField字段:
      avatar = models.ImageField(upload_to='avatars/', blank=True)
      
    • 模板表单添加enctype属性:
      <form action="/user_profile/" method="post" enctype="multipart/form-data">{% csrf_token %}
      
    • 视图里获取并保存文件:
      avatar = request.FILES.get('formFile')
      profile = UserProfile(phoneNumber=phoneNumber, name=name, address=address, user=user, avatar=avatar)
      

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 09:06:35