Ошибка IntegrityError в / users / add-user / UNIQUE: user_user_data.username - PullRequest
0 голосов
/ 17 мая 2019

Я пытаюсь зарегистрировать нового пользователя через форму 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

Я прочитал Здесь , что добавление instance = request.user при создании может работать, но так как мой пользователь, который вводит данные в форму, не аутентифицирован, он выдает мне следующую ошибку:

AnonymousUser' object has no attribute '_meta'

Кроме того, где-то я читал, что это может быть из-за того, что я сохраняю данные дважды, но когда comnet out data.save (), он работает без ошибок, но не вносит никаких изменений в базу данных, поэтому это не связано сдвойное сохранение данных.Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...