gpt4 book ai didi

django-registration create_user() 意外关键字

转载 作者:行者123 更新时间:2023-12-05 08:35:15 25 4
gpt4 key购买 nike

我正在尝试创建自定义配置文件以将其他字段添加到 django-registration。这是我到目前为止的代码 --

models.py

from django.db import models
from django.contrib.auth.models import User

class Profile(models.Model):
user = models.ForeignKey(User, unique=True)
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
email = models.CharField(max_length=50)
password = models.CharField(max_length=50)

并在 settings.py

AUTH_PROFILE_MODULE = 'myproject.Profile'

但是,当我尝试使用 create_user() 时出现以下错误。这是我将其输入解释器时发生的情况 --

>>> from django.contrib.auth.models import User
>>> User.objects.create_user(first_name='tom',last_name='smith',email='ts@gmail.com',password='hello')
Traceback (most recent call last):
File "<console>", line 1, in <module>
TypeError: create_user() got an unexpected keyword argument 'first_name'

为了让 create_user() 识别这些新列,我缺少什么?谢谢。

最佳答案

这里有很多地方你做错了

首先,这些不是 User 模型中的字段,它们是 Profile 模型中的字段。因此,用户管理器方法无法识别它们也就不足为奇了。您需要使用 create_user 以正常方式定义一个 User 对象,然后使用该用户定义 Profile 实例。

其次,create_user 不会将所有字段名称作为关键字参数 - 它只需要 username, email and password .同样,之后您需要自己设置其他字段。

但是,我完全不明白您为什么要定义这些特定字段。它们都可以在 built-in User model 中找到.特别是,您绝对不应该定义自己的密码字段,除非您还编写一些代码将密码存储为哈希而不是纯文本。

关于django-registration create_user() 意外关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6007556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com