Изображения из models не выгружаются на сайт. Как указать сбор данных с родительского каталога, относительно public_html?

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

1. Настройка модели:
В модели, где вы хотите хранить изображение, необходимо добавить поле типа "ImageField" или "FileField". Например:

from django.db import models

class MyModel(models.Model):
    image = models.ImageField(upload_to='images/')

В данном примере, все загружаемые изображения будут сохраняться в подкаталоге "images/".

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

Абсолютный путь:
Если вы хотите указать абсолютный путь к папке, вы можете использовать константу "BASE_DIR" в файле "settings.py". Например:

import os

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

MEDIA_ROOT = os.path.join(BASE_DIR, 'media/')

В данном примере, все загружаемые файлы будут сохраняться в папке "media/" в корневом каталоге проекта.

Относительный путь:
Если вы хотите указать путь относительно пути каталога "public_html", вы можете использовать переменную "MEDIA_URL" в файле "settings.py". Например:

MEDIA_URL = '/media/'

Это означает, что все загружаемые файлы будут доступны по URL-адресу вида "/media/имя_файла".

3. Обработка загрузки файлов:
При обработке отправки формы с файлом изображения, вы должны учесть следующее:
- Установите атрибут "enctype" для формы в значении "multipart/form-data" для поддержки загрузки файлов.
- Используйте объект "request.FILES" для доступа к файлу, отправленному вместе с формой.
- Используйте метод "save()" для сохранения файла на сервере. Например:

def my_view(request):
    if request.method == 'POST':
        form = MyForm(request.POST, request.FILES)
        if form.is_valid():
            form.save()
            return redirect('success_url')
    else:
        form = MyForm()
    return render(request, 'my_template.html', {'form': form})

4. Отображение изображений:
Чтобы отобразить загруженное изображение на сайте, вам необходимо настроить правильные пути для отображения файлов статического контента (в данном случае, изображений).

В файле "urls.py", добавьте следующий код:

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

urlpatterns = [
    # ... Ваши другие URL-адреса ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

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

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