Проблема с профилем пациента и системой авторизации в Django

Сегодня я столкнулся с очень сложной проблемой в своем проекте. Идея проста, в модели врача у меня есть уникальный токен_connect_token, который нужен для связи пациента с конкретным врачом. В шаблоне профиля пациента я создал простую форму методом POST для получения этого токена от пациента. Пациент видит эту форму в своем профиле, если у него нет связанного доктора, и проходит аутентификацию. У меня возникла проблема с методом post в этом классе:

class PatientProfile(generic.DetailView):
    model = Patient
    template_name = 'patient_profile.html'
    context_object_name = 'patient'
    
    @staticmethod
    def users_role(request):
        user = request.user
        is_patient = user.groups.filter(name='Patients').exists()
        is_doctor = user.groups.filter(name='Doctors').exists()
        return is_patient, is_doctor
    
    def get_context_data(self, **kwargs):
        self.object = self.get_object()
        context = super().get_context_data(**kwargs)
        is_patient, is_doctor = self.users_role(self.request)
        context['is_patient'] = is_patient
        context['is_doctor'] = is_doctor
        context['link_form'] = DoctorLinkForm()
        return context
    
    def get_object(self, queryset=None):
        if not hasattr(self, 'object'):
            self.object = super().get_object(queryset)
        return self.object
    

    def post(self, request, *args, **kwargs):
        patient_id = request.user.id
        link_form = DoctorLinkForm(request.POST)
        if link_form.is_valid():
            token = link_form.cleaned_data['doctor_unique_token']
            doctor = Doctor.objects.get(unique_connect_token = token)
            patient = Patient.objects.get(pk = patient_id)
            patient.doctor_id = doctor
            patient.save()
            return redirect('patient_profile', pk=request.user.id)
        return self.render_to_response(self.get_context_data(link_form = link_form))

Когда метод POST работает успешно, мой пациент перенаправляется на ту же страницу, но UNLOG с сайта. И когда я пытаюсь войти в систему снова, я получаю сообщение, что пароль неверен, хотя данные введены на 100% правильно. Помогите пожалуйста, я действительно не понимаю, как решить эту проблему.

Я уже пробовал использовать request.user.refresh_from_db(), но это мне не помогло

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