/ users / add-user / UNIQUE约束下的IntegrityError失败:users_user_data.username

时间:2019-05-17 07:59:22

标签: python-3.x django-models django-rest-framework django-forms

我正在尝试通过Django表单和邮递员注册新用户。我的代码是

view.py

class AddUser(APIView):
    #@login_required(login_url='/users/login/')
    def get(self,request):
        form = AddForm()
        return render(request, 'users/add_user.html', {'form':form})

    def post(self,request):
        form = AddForm(request.POST or None)
        if form.is_valid():
            obj = utils()
            data = form.save(commit=False)
            unhashed = obj.random_pass()
            send_mail('Login Password', unhashed, 'Django-admin', [data.email])
            hashed = obj.pass_hash(unhashed.encode())
            data.password = hashed
            print(hashed)
            data.save()
            return redirect('/users/')

我的模特是

class user_data(AbstractUser):
    name = models.CharField(max_length=20, unique=False)
    email = models.EmailField(unique=True)
    role = models.IntegerField()
    password = models.CharField(max_length=128)

但是每当我尝试添加新用户时,都会出现以下错误

UNIQUE constraint failed: users_user_data.username

我读到Here,说在创建时添加instance = request.user是可以的,但是由于我未对以表单形式输入数据的用户进行身份验证,因此出现以下错误:

AnonymousUser' object has no attribute '_meta'

另外,我在某处读到这可能是因为我两次保存数据,但是当commnet out data.save()时,它可以正常工作而不会出错,但不会对数据库进行任何更改,因此这不是由于重复保存数据的。 预先感谢。

0 个答案:

没有答案