Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django 1.8.2:将数据对象传递给User.objects.create\u User_Python_Django - Fatal编程技术网

Python Django 1.8.2:将数据对象传递给User.objects.create\u User

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

在Django上创建用户时,有没有一种方法可以将object实例(从Python)传递给create_user方法

我的意思是,假设我想让用户决定是否包括名字和姓氏,两者都包括,或者两者都不包括。电子邮件地址也是可选的

假设我创建了一个Python对象,如下所示:

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)
要解压缩字典: