Size: a a a

Django [ru] #STAY HOME

2020 January 18

tn

tot samiy neizvestniy in Django [ru] #STAY HOME
Ещё документировать код неплохо и спецификацию писать
источник

ℕo ℕame in Django [ru] #STAY HOME
tot samiy neizvestniy
Зато удобно
при чтении - да. Но я начинал с питона. Поэтому не особо фанат статической типизации
источник

PZ

Pavel Zagrebelin in Django [ru] #STAY HOME
ℕo ℕame
при чтении - да. Но я начинал с питона. Поэтому не особо фанат статической типизации
код пишется один раз, а читается - много, поэтому лучше будет удобнее читать, чем писать.
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Народ поделитесь мнением: где бы вы агрегировали данные из нескольких таблиц, чтобы прогнать итог через DRF-сериализаторы и отдать на фронт через DRF-view?
Для формирования графика.

Отдельные классы, в DRF-сериализаторах или, может, в DRF-view?
источник

A

Andrey in Django [ru] #STAY HOME
Artem Gubatenko
Народ поделитесь мнением: где бы вы агрегировали данные из нескольких таблиц, чтобы прогнать итог через DRF-сериализаторы и отдать на фронт через DRF-view?
Для формирования графика.

Отдельные классы, в DRF-сериализаторах или, может, в DRF-view?
Я за отдельные классы
источник

A

Andrey in Django [ru] #STAY HOME
S – single responsibility
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Andrey
Я за отдельные классы
спасибо, 👍
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
по желанию начальства, мне пришлось делать в сериализаторах((
источник

A

Andrey in Django [ru] #STAY HOME
хм
источник

A

Andrey in Django [ru] #STAY HOME
странное, что начальство в такие вещи вмешивается)
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Artem Gubatenko
по желанию начальства, мне пришлось делать в сериализаторах((
ну если модели связаны, почему нет ?
достаточно обычная практика
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Dan Tyan
ну если модели связаны, почему нет ?
достаточно обычная практика
да, модели связаны:
все инвойсы за период, разбитые по статусам + OneToMany модели для подсчета сумм
источник

PZ

Pavel Zagrebelin in Django [ru] #STAY HOME
в сериализаторе не всегда есть доступ к кверисету, select_related\prefetch_related присунуть некуда.
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Pavel Zagrebelin
в сериализаторе не всегда есть доступ к кверисету, select_related\prefetch_related присунуть некуда.
прокинул request в главный сериализатор и в нем уже сформировал queryset с prefetch_related

далее уже этот queryset прокидывал дочерним сериализаторам, в которых нужно извлечь данные
источник

PZ

Pavel Zagrebelin in Django [ru] #STAY HOME
Artem Gubatenko
прокинул request в главный сериализатор и в нем уже сформировал queryset с prefetch_related

далее уже этот queryset прокидывал дочерним сериализаторам, в которых нужно извлечь данные
Кстати, request  уже есть в контексте, а дочерние сериализаторы (прописанные в филдах) имеют доступ к контексту парента.
источник

b

brestows in Django [ru] #STAY HOME
ребят подскажите, есть модели, описал классы для серилизациии https://dpaste.org/4r4i

пытаюсь получить данные:
settings = ABSettings.objects.filter(user=user).values(*items)
user_data = ABSettingsSerializer(settings)
print(user_data.data)

получаю ошибку:

AttributeError: Got AttributeError when attempting to get a value for field `attribute` on serializer `ABSettingsSerializer`.
The serializer field might be named incorrectly and not match any attribute or key on the `QuerySet` instance.

где я накосячил ?
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Pavel Zagrebelin
Кстати, request  уже есть в контексте, а дочерние сериализаторы (прописанные в филдах) имеют доступ к контексту парента.
я строил вьюху на rest_framework.views.APIView и сериализовывал в методе get()

Пока писал ответ, подумал что я мог бы сделать главным сериализатор serializers.ListSerializer и вьюху ListAPIViw )
источник

PZ

Pavel Zagrebelin in Django [ru] #STAY HOME
Artem Gubatenko
я строил вьюху на rest_framework.views.APIView и сериализовывал в методе get()

Пока писал ответ, подумал что я мог бы сделать главным сериализатор serializers.ListSerializer и вьюху ListAPIViw )
ну просто я хотел напомнить, что контексты - прикольная штука. Чтобы руками ничего никуда не протакивать.
источник

iS

i Seven in Django [ru] #STAY HOME
чтобы у объекта вытащить поле name, надо писать
```
object.__getattribute__('name')?
```
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
i Seven
чтобы у объекта вытащить поле name, надо писать
```
object.__getattribute__('name')?
```
getattr(object, 'name', None)
источник