Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.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中出现错误_Python_Django_Django Models - Fatal编程技术网

尝试手动保存用户时python django中出现错误

尝试手动保存用户时python django中出现错误,python,django,django-models,Python,Django,Django Models,当我试图在django中手动创建一个新用户时,我正在尝试一些错误 这是我的代码: from django.contrib.auth.models import User newuser = User() newuser.username = request.data['username'] newuser.first_name = request.data['first_name'] newuser.last_name = request.data['last_name'] newuser.e

当我试图在django中手动创建一个新用户时,我正在尝试一些错误

这是我的代码:

from django.contrib.auth.models import User

newuser = User()
newuser.username = request.data['username']
newuser.first_name = request.data['first_name']
newuser.last_name = request.data['last_name']
newuser.email = request.data['email']
newuser.is_active = True
newuser.set_password(request.data['password'])
newuser.full_clean()
newuser.save()
代码能够正确地插入用户,我在数据库中看到了更改,但是在使用此命令保存用户后,代码会中断

File "/usr/local/lib/python3.6/site-packages/django/db/models/manager.py", line 82, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/usr/local/lib/python3.6/site-packages/django/db/models/query.py", line 413, in create
obj.save(force_insert=True, using=self.db)
TypeError: save() got an unexpected keyword argument 'force_insert'
我真的不知道问题出在哪里

请改用这个用户

from django.contrib.auth import get_user_model
User = get_user_model()

添加此代码后,我解决了问题

args = ()
kwargs = {}
newuser.save(*args,**kwargs)
我接受了这篇文章的想法

事实上,我检测到我所有的表单都失败了,例如我的一个表单

class UserRegisterForm(UserCreationForm):


    class Meta:
        model = User
        fields = ['first_name','last_name','username','email','password1','password2']
直到今天它还可以工作,但失败了,所以我需要将它改为

class UserRegisterForm(UserCreationForm):


    def save(self, *args, **kwargs):
        super().save(*args, **kwargs)**

    class Meta:
        model = User
        fields = ['first_name','last_name','username','email','password1','password2']

我不知道这个问题是什么时候开始的,我的意思是在哪个django版本中。

您使用的是哪个django版本?您好,django版本2.1.7,为什么不使用User.objects.create()函数?您可以使用所需的所有数据创建一个字典,然后将其传递给此函数。@JuanMiGabarron-
create()
是OP正在使用的完全有效代码的快捷方式。只有在使用自定义用户模型的情况下,它才起作用。