Comments (6)
Пока есть время проработать материал, предлагаю заняться
Для примера, вот примерно что в админке по подаче должно быть
from intensiveyandex-backend.
так я же preview и gallery унаследовал от одного предка, или вы другое имеете в виду ?
from intensiveyandex-backend.
Сейчас это просто наследники ImageField, а ты можешь создать свой класс, чтобы
- не дублировать поля (как сейчас name)
- создать универсальные методы
- и вообще изменить логику взаимодействия с картинками, а то сейчас всё ну очень так себе
Попробуй представить, как бы ты сам хотел, чтобы это работало, и сначала набросай банально схему работы
Джанго может ооочень хорошо подстраиваться под желания, и даже найти подходящие варианты несложно
from intensiveyandex-backend.
Изменения:
- При создании превью не требуется название, категория, тег...
- Убрал кникальность, ошибки не возникают
- При создании товара, мы прямо оттуда создаем ему превью и фотогалерею
- Добавил в базовую модель: name, str, и специальный метод, необходимый для админки - item_name
Как по мне, то стало гораздо удобнее, видно где какое превью чему принадлежит и наоборот, создавать/удалять/редактировать фотки можно в модели товара
from intensiveyandex-backend.
В карточке товара разобрались, получается по ТЗ, дальше уже больше в сторону удобства надо копать.
Но в порядке доработки обрати внимание, что при удалении изображения из галереи картинка из папки uploads пропадает, а превьюха из cache - нет (!). То есть, сервер будем забивать ненужным мусором. Это надо устранить. Возможно, что-то стоит ещё посмотреть, может что-то с сигналами
Возвращаясь с донастройке. Основное изображение на странице товара лучше поставить до галереи, это и логичнее. При уменьшении ширины страницы вёрстка плывёт (смотрю у других, многие просто специальное имя для картинок не задавали, что, в принципе, и правда необязательно; для основной можно взять данные от названия товара, а для галереи вообще не брать; но на текущем этапе и так тоже допустимо).
А вот в списке товаров превьюха великовата, туда - уже для себя и для удобства - можно создавать второй вариант превьюхи. Например, 50x50 (или 75х75).
Порядок в модели ImageBaseModel в основном соблюдён, но потом можно будет улучшить, а то место кастомных def'ов и место задания их полей немного портит восприятие кода
Кстати, перепроверь корневой urls.py (не забывай про flake8)
from intensiveyandex-backend.
Думал, что с получившейся в проекте терминологией получится жить, но нет, это неудобно и сбивает
Превью - это всё-таки картинка предпросмотра, т.е. то, что падает у тебя в media/cache, поэтому такой заголовок подходит разве что для колонок с thumbnail'ами изображений. А так у нас есть основное изображение и изображения галереи
from intensiveyandex-backend.
Related Issues (20)
- Пара моментов по send_mail() в feedback()
- Мелочь по Feedback.short_text()
- Упорядочить код в forms
- Можно чуть дополнить модель Profile HOT 1
- Можно улучшить админку users
- По основным урлам
- По мелочи HOT 1
- Дополнительно по этому и предыдущему коду (доделать в свободное время)
- Актуализировать ридми
- Темплейти HOT 1
- ERD
- Темплейты еще
- Массовая рассылка: За выходные доподготовьте проекты
- CBV users
- ERD
- CBV
- Не информативно
- А если захочется получить оценки, которые выставил пользователь? HOT 1
- А если пользователь не авторизован? HOT 2
- Зачем такие трудности?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from intensiveyandex-backend.