IntegrityError at /signup/ UNIQUE constraint failed: accountss_doctor.user_id

Я пытаюсь зарегистрироваться как Доктор, но у меня возникла следующая проблема .

   raise dj_exc_value.with_traceback(traceback) from exc_value
  File "C:\Users\rachi\AppData\Local\Programs\Python\Python310-32\lib\site-packages\django\db\backends\utils.py", line 89, in _execute
    return self.cursor.execute(sql, params)
  File "C:\Users\rachi\AppData\Local\Programs\Python\Python310-32\lib\site-packages\django\db\backends\sqlite3\base.py", line 477, in execute
    return Database.Cursor.execute(self, query, params)
django.db.utils.IntegrityError: UNIQUE constraint failed: accountss_doctor.user_id

вот мой models.py




class User(AbstractUser):
    is_doctor = models.BooleanField(default=False)
    is_patient = models.BooleanField(default=False)


class Doctor(models.Model):
    user = models.OneToOneField(
        User, on_delete=models.CASCADE, primary_key=True)
    number_phone = models.CharField(
        _('االهاتف :'), max_length=50, blank=True, null=True)
    last_login = models.DateTimeField(auto_now_add=True)
   

    name = models.CharField(_('الاسم :'), max_length=50)
    surname = models.CharField(_(' اللقب :'), max_length=50)
    subtitle = models.CharField(_('نبدة عنك :'), max_length=50)
    address = models.CharField(_("المحافضة :"), max_length=50)

вот мой views.py

class DoctorSignupForms(UserCreationForm):
    username = forms.CharField(label="الاسم")
    first_name = forms.CharField(label="الاسم الاول")
    last_name = forms.CharField(label=" الاسم الاخير")
    number_phone = forms.CharField(label=" الهاتف")
    email = forms.EmailField(label="البريد الالكتروني")
    password1 = forms.CharField(
        label=" كلمة المرور", widget=forms.PasswordInput(), min_length=8)
    password2 = forms.CharField(
        label="تاكيد كلمة المرور", widget=forms.PasswordInput(), min_length=8)

    class Meta(UserCreationForm.Meta):
        model = User
        fields = ('username', 'first_name', 'last_name',
                  'email', 'password1', 'password2', 'number_phone')

    @transaction.atomic
    def save(self):
        user = super().save(commit=False)
        user.email = self.cleaned_data.get('email')
        user.is_doctor = True
        user.save()
        doctor = Doctor.objects.create(user=user)
        doctor.username = self.cleaned_data.get('username')
        doctor.number_phone = self.cleaned_data.get('number_phone')
        doctor.save()
        return doctor

Я слышал, что это из-за отношения, которое должно быть foreinkey, а не один к одному, но я хочу, чтобы у каждого врача был один профиль

Вернуться на верх