Size: a a a

Django [ru] #STAY HOME

2019 May 08

P

Pooh in Django [ru] #STAY HOME
Pooh
Когда ты связываешь модели - отображается его pk. А pk в данном случае - его id, который автоматом генерится, если ты её не перебиваешь
В данном случае - num: 351 - это номер записи
Если сделаешь метод api/<pk>/show/
То отобразится твоя моделька
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
да нет же
источник

P

Pooh in Django [ru] #STAY HOME
Eugene Maltsev
почему num выступает в роли pk?)
Это название поля.
источник

P

Pooh in Django [ru] #STAY HOME
pk - id
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
блин, там две вложенности
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
num и oncustomer
источник

RD

Ruslan Dudenko in Django [ru] #STAY HOME
Господа. Помогите составить запрос с ОРМ.
Есть модель.
class ProviderProducts(models.Model):
   ....
   crm_sku = models.PositiveIntegerField(verbose_name='Артикул', blank=True, null=True)
   provider_price = models.DecimalField(verbose_name='Цена поставщика', max_digits=10, decimal_places=3, null=True)
   ....

Надо при получении всех объектов сделать .annotate?
crm_sku - артикул товара. Может повторяться.
provider_price - цена.
Собственно мне для каждой записи надо добавить поле с минимальной ценой.
Допустим есть артикул 12345 и с таким crm_sku есть 3 записи в бд. У них разная provider_price.
Задача к каждой записи добавить поле с минимальной ценой среди всех записей с crm_sku=12345.
Собственно не понимаю как сделать annotate с условиями взять Min('provider_price') где crm_sku совпадает.
источник

RD

Ruslan Dudenko in Django [ru] #STAY HOME
Я могу это сделать просто на SQL, но тогда я все равно останусь у корыта ибо не пойму как подобное делать средствами Django ORM.
источник

RD

Ruslan Dudenko in Django [ru] #STAY HOME
Либо проходиться циклом по всем объектам и выполнять\добавлять запросы .get(crm_sku=12345).annotate(min_price=Min('provider_price')) но это куча лишних запросов и не правильно же.
источник

А

Алексей in Django [ru] #STAY HOME
Ruslan Dudenko
Либо проходиться циклом по всем объектам и выполнять\добавлять запросы .get(crm_sku=12345).annotate(min_price=Min('provider_price')) но это куча лишних запросов и не правильно же.
aggregate не лучше ли тут будет?
источник

А

Алексей in Django [ru] #STAY HOME
не, не подойдёт, похоже
источник

RD

Ruslan Dudenko in Django [ru] #STAY HOME
Ага. aggregate на весь запрос идет, а annotate на каждый объект в запросе что мне и надо =)
источник

А

Алексей in Django [ru] #STAY HOME
надо так annotate делать, чтобы сразу к пачке применять, он для этого так-то
источник
2019 May 09

AM

Artem Malyshev in Django [ru] #STAY HOME
Богдан channels
Привет, подскажите, где найти проект (есди опыта нет), туториалы уже надоели, хочется чего то более реального, даже без оплаты, опыта ради
Поразбирайся с sentry или openedx. Большие проекты на Django. Можно даже issue починить.
источник

iS

i Seven in Django [ru] #STAY HOME
почему класс в django должен наименоваться в единственном числе?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
класс модели ?
источник

iS

i Seven in Django [ru] #STAY HOME
да
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Потому что создаая объект класса
ты создаешь один объект (одну запись в базе)
источник

iS

i Seven in Django [ru] #STAY HOME
то есть в дальнейшем если я создам еще cbv, то также описывать в единственном числе?
источник

DT

Dan Tyan in Django [ru] #STAY HOME
классы для въюх ?
источник