Файл django открывается локально, но не открывается на сервере

Я хочу добиться того, чтобы пользователь загружал файл через форму, скажем, фотографию профиля, Моя цель - взять этот файл, отправить его через imgbb's api и получить url изображения, чтобы сохранить его для использования в моем шаблоне позже.
Я смог добиться этого с помощью приведенного ниже кода, который работает локально (Windows), но как только я перехожу на свой рабочий сервер (в данном случае pythonanywhere), код не работает.

# CODE: 
def testingpage(request):
    image = ''
    url = ''

    if request.method == 'POST':
        pic = request.FILES['image']
        url = upload_to_bb(request, pic)
        if url is not None:
            from django.contrib import messages
            messages.info(request, 'Uploaded Successfully')

    return render(request, 'test.html', {'image': url})


def upload_to_bb(request, pic):
    import os
    from django.conf import settings
    from django.core.files.storage import FileSystemStorage
    import base64
    import requests

    base_url = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    fs = FileSystemStorage()
    filename = fs.save(pic.name, pic)
    file_path = f'{base_url}\media\{filename}'
    apikey = settings.IMGBB_API_KEY
    with open(file_path, "rb") as file:
        url = "https://api.imgbb.com/1/upload"
        payload = {
            "key": apikey,
            "image": base64.b64encode(file.read()),
        }
        r = requests.post(url, payload)
        js = r.json()
        if r.status_code == 200:
            data = js['data']
            file.close()
            os.remove(file_path)
            return data['image']['url']
        else:
            file.close()
            os.remove(file_path)
            from django.core.exceptions import ValidationError
            raise ValidationError("An error occurred processing the image")
    return None

виновником является эта строка кода

file_path = f'{base_url}\media\{filename}'

На локальном сервере windows: Возвращается

C:\Users\Sammy\PycharmProjects\kegites\media\WIN_20211209_15_41_37_Pro.jpg

на pythonanywhere, я получаю ошибку:

FileNotFoundError at /

[Errno 2] No such file or directory: '/home/kegitesclub/kegites\\media\\WIN_20211209_15_41_36_Pro_3afnrPi.jpg'

на heroku, я получаю:

No such file or directory: '/app\\media\\WIN_20211209_15_41_37_Pro.jpg'

Связано ли это с linux, что это серверы, или это что-то другое, возможно ограничение Django? Или вы можете предложить лучший подход для достижения конечного результата?

Любая помощь будет оценена по достоинству

StackTrace для pythonanywhere:

The stacktrace, it displays weirdly with copy/paste

Ссылка на изображение : https://i.stack.imgur.com/quXPI.png

попробуйте заменить эту строку на эту

file_path = f'{base_url}\media\{filename}'

на это

file_path = f'{base_url}/media/{filename}'

и протестируйте его на сервере

Если вам нужно иметь пути, не зависящие от системы (между средами Windows и Linux), используйте os.path.join или еще лучше pathlib для их построения.

file_path = os.path.join(base_url, 'media', filename)

или в случае pathlib

base_url = pathlib.Path(__file__).resolve().parent.parent

и тогда

file_path = base_url / 'media' / filename
Вернуться на верх