Size: a a a

Django [ru] #STAY HOME

2019 April 16

DT

Dan Tyan in Django [ru] #STAY HOME
Yegor Kowalew
Товарищи, есть ли у кого какие комментарии к этому трейсу?
https://pastebin.com/zB0iAfUm
ну тут
self.status = None
AttributeError: 'NoneType' object has no attribute 'split'
источник

J

John in Django [ru] #STAY HOME
Kylych Asankulov
всем привет. помогите с архитектурой. делаю апишку для мобильного приложения. а их 2: 1ый для специалистов 2ой для клиентов. там есть взаимодействие клиент  -> специалист и наоборот. как разделить юзеров в модельках, чтоб потом с авторизацией не было проблем?
нужные модели наследуй от юзеров, т.е. нужно привязать модель к юзеру, поправьте если не прав...
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Kylych Asankulov
всем привет. помогите с архитектурой. делаю апишку для мобильного приложения. а их 2: 1ый для специалистов 2ой для клиентов. там есть взаимодействие клиент  -> специалист и наоборот. как разделить юзеров в модельках, чтоб потом с авторизацией не было проблем?
1 модель user для всех

2 модели profile c O2O к узеру на каждый профиль
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
Dan Tyan
ну тут
self.status = None
AttributeError: 'NoneType' object has no attribute 'split'
но это ведь не в моем коде
источник

DT

Dan Tyan in Django [ru] #STAY HOME
а вообще где то соединени оборвалось
источник

MV

Maksim Vasyunin in Django [ru] #STAY HOME
Подскажите как будет выглядеть запрос такого вида реализованый с помощью ORM:
SELECT *
FROM (
   SELECT
       id,
       section,
       header,
       score,
       row_number() OVER (PARTITION BY section ORDER BY score DESC)  AS rating_in_section
   FROM news
   ORDER BY section, rating_in_section
) counted_news
WHERE rating_in_section <= 5;
У меня есть queryset c результатами Window function и не понимаю как сделать его вложенным чтобы его можно было отфильтовать.
источник

KA

Kylych Asankulov in Django [ru] #STAY HOME
Dan Tyan
1 модель user для всех

2 модели profile c O2O к узеру на каждый профиль
примерно так и думал. спасибо большое)
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
@dantyan это можно как-то отследить и понять причину?
источник

AN

Alexy Nesterchuk in Django [ru] #STAY HOME
могу ли я сделать так:
переопределить метод create в серелизаторе, там сделать проверку или еще что то(я знаю что проверки делаются в validate, мне нужна проверка именно при создании) затем вызвать что то типа super.create
типа так:

def create(self, validated_data):
       
       cost = validated_data['cost']
       if cost > 0:
           super.create(validated_data) // вызвать супер
       else:
           raise exceptions.ErrorDetail('123123')
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Alexy Nesterchuk
могу ли я сделать так:
переопределить метод create в серелизаторе, там сделать проверку или еще что то(я знаю что проверки делаются в validate, мне нужна проверка именно при создании) затем вызвать что то типа super.create
типа так:

def create(self, validated_data):
       
       cost = validated_data['cost']
       if cost > 0:
           super.create(validated_data) // вызвать супер
       else:
           raise exceptions.ErrorDetail('123123')
да можешь
источник

AK

Andrey 🦉 Kovalchuk in Django [ru] #STAY HOME
Alexy Nesterchuk
могу ли я сделать так:
переопределить метод create в серелизаторе, там сделать проверку или еще что то(я знаю что проверки делаются в validate, мне нужна проверка именно при создании) затем вызвать что то типа super.create
типа так:

def create(self, validated_data):
       
       cost = validated_data['cost']
       if cost > 0:
           super.create(validated_data) // вызвать супер
       else:
           raise exceptions.ErrorDetail('123123')
Можно, конечно. Но как раз в этом примере, подобную проверку необходимо располагать в другом месте
источник

AN

Alexy Nesterchuk in Django [ru] #STAY HOME
Andrey 🦉 Kovalchuk
Можно, конечно. Но как раз в этом примере, подобную проверку необходимо располагать в другом месте
perform_create или где? А как вызвать чет не догоняю в create, create с супер класса
источник

AK

Andrey 🦉 Kovalchuk in Django [ru] #STAY HOME
Alexy Nesterchuk
perform_create или где? А как вызвать чет не догоняю в create, create с супер класса
Все вержно же в примере сами писали.

def create(self, validated_data):
   return super().create(validated_data)
источник

i

ikasymov in Django [ru] #STAY HOME
Alexy Nesterchuk
могу ли я сделать так:
переопределить метод create в серелизаторе, там сделать проверку или еще что то(я знаю что проверки делаются в validate, мне нужна проверка именно при создании) затем вызвать что то типа super.create
типа так:

def create(self, validated_data):
       
       cost = validated_data['cost']
       if cost > 0:
           super.create(validated_data) // вызвать супер
       else:
           raise exceptions.ErrorDetail('123123')
делай в validate
источник

AK

Andrey 🦉 Kovalchuk in Django [ru] #STAY HOME
А проверку cost, т.к. он вытаскивается из сериализатора, то стоит отправить это в validate метод.
источник

i

ikasymov in Django [ru] #STAY HOME
можешь даже указать min_value max_value в классе IntegerField
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Andrey 🦉 Kovalchuk
Все вержно же в примере сами писали.

def create(self, validated_data):
   return super().create(validated_data)
super().create(validated_data)
источник

AK

Andrey 🦉 Kovalchuk in Django [ru] #STAY HOME
Dan Tyan
super().create(validated_data)
тчн, опечатался
источник

AK

Andrey 🦉 Kovalchuk in Django [ru] #STAY HOME
ikasymov
можешь даже указать min_value max_value в классе IntegerField
Вот, ага, тоже дельный совет, если прям cost проверяем
источник

AN

Alexy Nesterchuk in Django [ru] #STAY HOME
спасибо большое всем, понял
источник