Как в админке Django можно сделать редактирование пространства под файлы каждого пользователя вручную?

В Django, чтобы сделать редактирование пространства под файлы каждого пользователя в админке, вам понадобится использовать комбинацию пользовательских моделей, моделей администратора Django и настройку статических маршрутов для обработки файлов.

Первым шагом является создание пользовательской модели для хранения информации о файле пользователя. Вы можете создать новую модель, которая будет содержать поля, такие как Имя пользователя, Описание файла, Файл и любые другие дополнительные поля, которые вам понадобятся.

Примерная модель может выглядеть следующим образом:

from django.db import models
from django.contrib.auth.models import User

class UserFile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    file_name = models.CharField(max_length=255)
    description = models.TextField()
    file = models.FileField(upload_to='user_files/')

Затем вам нужно настроить административный интерфейс Django для управления записями в этой модели. Создайте файл admin.py в вашем приложении и добавьте следующий код:

from django.contrib import admin
from .models import UserFile

admin.site.register(UserFile)

Это зарегистрирует модель UserFile в административном интерфейсе Django и позволит вам просматривать и редактировать записи в этой модели через админку.

Кроме того, вы должны добавить статический маршрут, чтобы обслуживать загруженные файлы пользователя. Добавьте следующий код в urls.py вашего проекта:

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    # ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

Здесь settings.MEDIA_URL - это URL-префикс для статических файлов, а settings.MEDIA_ROOT - это путь к корневой директории, где будут храниться загруженные файлы.

Теперь, когда модель и административный интерфейс настроены, каждый пользователь сможет загружать файлы и редактировать информацию о своих файлах через админку Django. Когда файл будет загружен, он будет сохранен в директории, указанной в поле upload_to вашей модели UserFile.