Как я могу изменить URL, указывающий на файл в виджете FileInput во фронтенде Django Admin, чтобы он указывал на мое представление

В моем проекте django я хочу, чтобы пользователь мог загружать файлы, которые доступны только для пользователей из той же компании и для пользователей, которые являются сотрудниками. Решение, которое я нашел, заключается в том, что я загружаю файлы в пользовательский FileSystemStorage с базовым_url, который отсутствует в urls, поэтому файлы недоступны по этому url, единственный способ получить к ним доступ - через мое представление.

Проблема в том, что во фронтенде django admin на виджете FileInput он ссылается на url, который недоступен. Как я могу связать его с моим представлением?

Это моя модель:

upload_storage = FileSystemStorage(location='/private/', base_url='/private/')


class Datei(models.Model):
    datei = models.FileField(upload_to='vertraege', storage=upload_storage)
    ...

Вот мое мнение:

@login_required(login_url='/login/')
def serve_file(request, file_id):
    file = Datei.objects.get(id=file_id)
    user = User.objects.get(id=request.user.id)
    if file.firma == user.firma or user.is_staff:
        return FileResponse(file.datei)
    else:
        return HttpResponseForbidden()
Вернуться на верх