Я пытаюсь зарегистрировать нового пользователя через форму 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 (), он работает без ошибок, но не вносит никаких изменений в базу данных, поэтому это не связано сдвойное сохранение данных.Заранее спасибо.