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

Пишу небольшой проект на джанго с приложением и столкнулся с проблемой. Проблема в модели Product. При создании пути, по которому я хочу загрузить изображение в базу данных (хочу, чтобы папка создавалась автоматически), возникает следующая ошибка SuspciciousFileOperation введите сюда описание изображения

models.py

class Category(models.Model):
category_name = models.CharField(max_length=200, default="", primary_key=True)
category_image = models.ImageField(default="", upload_to='upload/images/categories')

def __str__(self):
    return self.category_name


def generate_path(instance, filename):
return "santechnic/{}/upload/images/".format(instance.category.category_name)


class Product(models.Model):
product_name = models.CharField(max_length=200, primary_key=True)
length = models.FloatField(default=0.0)
width = models.FloatField(default=0.0)
height = models.FloatField(default=0.0)
product_image = models.ImageField(default="", upload_to=generate_path)
category = models.ForeignKey(Category, on_delete=models.CASCADE)

urls.py

app_name = "santechnic"
urlpatterns = [
   path('', views.CategoryView.as_view(), name='category'),
   path('<slug:category_name>/', views.ProductsView.as_view(), name='products'),
   path('<slug:category_name>/<slug:product_name>/', views.ProductDetailView.as_view(), name='detail'),
]

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

часть settings.py

MEDIA_URL = ''
MEDIA_ROOT = ''

Директория:

введите сюда описание изображения

Почитав об ошибке выяснил слeдующее:

The exception is thrown when dealing with FileSystemStorage.get_available_name method. So that, it returns a filename that's free on the target storage system and available for new content to be written to for a given name. But if a given name is one of {'', '.', '..'}, the error will raise.

Но не понимаю, почему возникает ошибка.(если в функции generate_path не добавлять в конец пути '/', то ошибка не возникает, но и путь становится совсем не тем ' santechnic/toilets/upload/images_zSAIWAs'(загрузил изображение с именем '1.png') Это первый вопрос

Второй вопрос: Ранее прописав путь в upload_to в ImageField в явном виде(не генерируя), изображение оказалось в нужной папке, но запрос "GET /santechnic/toilets/santechnic/toilets/upload/images/1.png HTTP/1.1" 404 3273" по понятной причине его не находит, путь то неверен. Можно ли его как-то отредактировать или сделать, чтобы он брал только часть пути из upload_to (то есть upload/images/1.png)?

Скажите, если делаю что-то не так, это мой первый проект. Помогите, пожалуйста!

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