@robocop45

Что вы думаете насчет моей реализации по добавлению картинок в карточку товара?

Задача: добавлять фотогрфии к карточке товара(через админку)
Впервые делаю онлайн магазин, хотел бы у вас спросить, нормально сделал или костыль?

models
class Product(models.Model):
"""Товар"""
image_preview = models.ImageField(upload_to='images/%Y/%m', blank=True, null=True)#основаная картинка, которая показывается на главной стр.
....

class ProductPhotos(models.Model):
"""Загрузка большого кол-во фоток"""
    image = models.ImageField(upload_to='images/%Y/%m')
    post = models.ForeignKey('Product', on_delete=models.CASCADE)


admin

from .models import  Product, ProductPhotos

class ProductPhotosAdmin(admin.ModelAdmin):
  pass

class ProductPhotosInline(admin.StackedInline):
    model = ProductPhotos
    max_num=10
    extra=0

class ProductAdmin(admin.ModelAdmin):
    ....
    inlines = [ProductPhotosInline,]
admin.site.register(ProductPhotos, ProductPhotosAdmin)
admin.site.register(Product, ProductAdmin)
  • Вопрос задан
  • 112 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Exenzi
Python/Django/TS/Vue3
Да в целом так и делают обычно.

Пару замечаний:
1. Модели принято называть единственным числом кроме некоторых случаев. ProductPhoto
2. Почему FK-поле у ProductPhoto называется post? Логичнее называть по имени модели product
product = models.ForeignKey('Product', on_delete=models.CASCADE, related_name="photos")
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы