Python Django 1.8.2:将数据对象传递给User.objects.create\u User
在Django上创建用户时,有没有一种方法可以将object实例(从Python)传递给create_user方法 我的意思是,假设我想让用户决定是否包括名字和姓氏,两者都包括,或者两者都不包括。电子邮件地址也是可选的 假设我创建了一个Python对象,如下所示:Python Django 1.8.2:将数据对象传递给User.objects.create\u User,python,django,Python,Django,在Django上创建用户时,有没有一种方法可以将object实例(从Python)传递给create_user方法 我的意思是,假设我想让用户决定是否包括名字和姓氏,两者都包括,或者两者都不包括。电子邮件地址也是可选的 假设我创建了一个Python对象,如下所示: data = {first_name = 'Howdy', last_name = 'Hilary', email: 'hhilary@gmail.com} user = User.objects.create_user(usern
data = {first_name = 'Howdy', last_name = 'Hilary', email: 'hhilary@gmail.com}
user = User.objects.create_user(username = 'jdsflsdf', password = '********', data)
然后我通过它如下:
data = {first_name = 'Howdy', last_name = 'Hilary', email: 'hhilary@gmail.com}
user = User.objects.create_user(username = 'jdsflsdf', password = '********', data)
这可能吗?我想看看是否有一种更简单的方法可以在不同的注册环境下在Django上创建用户,而不必依赖多个if-else-if子句
(好的,我确实尝试在shell中实现了这一点,但我遇到了语法错误,并且很难找到它指向的字符,因为我的命令提示符窗口的宽度仅限于80个字符。我在单独的Python窗口shell中再次尝试,只不过我在最初没有设置环境变量时出错,并且我不想对其进行更改,因为这样做太复杂了。我甚至不知道设置环境变量是否只会影响命令提示符。)好吧,根据说明,所有这些字段确实都是可选的,而且创建用户功能是:
create_user(username, email=None, password=None, **extra_fields)
您确实可以将字典作为**extra\u字段
与您要设置的字段一起传递给该函数。create\u user
的文档是。唯一需要注意的是电子邮件
是一个关键字参数
您必须从dict中解析出可选电子邮件,并将其作为电子邮件关键字参数传入或不传入,然后在末尾将其余的内容转储到字典中。您不能在关键字参数之后传入非关键字参数。您只需执行以下操作:
user=user.objects.create\u user(username='jdsflsdf',password='********',**data)
要解压缩字典: