【问题标题】:TypeError: save() missing 1 required positional argument: 'self'类型错误:save() 缺少 1 个必需的位置参数:'self'
【发布时间】:2018-04-05 01:45:14
【问题描述】:

这是视图

class RegisterView(View):
def get(self,request):
    register_form = RegisterForm()
    return render(request,'register.html',{'register_form':register_form})
def post(self,request):
    register_form = RegisterForm(request.POST)
    if register_form.is_valid():
        user_name = request.POST.get("email", '')
        pass_word = request.POST.get("password", '')
        user_profile = UserProfile
        user_profile.username = user_name
        user_profile.email = user_name
        user_profile.password = make_password(pass_word)
        user_profile.save()   #error
        send_register_email(user_name,"register")

我想把user_profile保存到mysql,但是user_profile.save()有错误, TypeError: save() missing 1 required positional argument: 'self',我该如何解决?

【问题讨论】:

  • 你可以试试user_profile = UserProfile()而不是user_profile = UserProfile并检查它的输出。
  • 不相关,但使用表单来清理用户输入而不使用清理后的数据是自找麻烦。使用表单的 .cleaned_data 检索电子邮件和密码,而不是从 request.POST 获取它们。或者改用ModelForm...

标签: python django


【解决方案1】:

您尚未实例化UserProfile 的对象,而是将UserProfile 分配给user_profile

user_profile = UserProfile

应该是

user_profile = UserProfile()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 2021-07-14
    • 2015-07-13
    • 2019-10-02
    • 2017-06-24
    • 2016-05-27
    • 2017-08-21
    相关资源
    最近更新 更多