@pydjango

Страница 803 из 1273
Set
21.12.2017
06:25:51
мне кажется тебе данные не те приходят по этому ругается! ты бы перед mytodo поставил бы print(status) что бы понять что тебе приходит

подскажите пожалуйска как задать порт mkdocs serve! так как по дефолту он использует 8000

Bogdan
21.12.2017
06:49:47
ну у меня немного сложнее конкретно в UserLiteSerializer нет поля team но есть в базовом сериализаторе от которго он наследуется поэтому в базовом сериализаторе у меня сделано примерно так def to_representation(self, instance): result = super().to_representation(instance) if 'team' in self.Meta.fields: result['team'] = TeamSerializer(instance=instance.team).data
а почему нельзя было в дочернем сериализаторе сделать что-то вроде кода ниже? class ExpertSerializer(serializers.ModelSerializer): class Meta: model = models.Expert fields = ['id', ..., 'user_id'] class ExpertSerializerRO(ExpertSerializer): user = serializers.SerializerMethodField(read_only=True) def get_user(self, obj): return UserSerializerRO(obj.user_id).data class Meta(ExpertSerializer.Meta): fields = list(set(ExpertSerializer.Meta.fields) - {"user_id"} | {'user'})в чем смысл пропихивания полей через переопределение to_representation?

Google
Set
21.12.2017
06:51:37
Error: no such option: --dev_addr

при вызове команды mkdocs serve --dev_addr default: '127.0.0.1:8001' анолагично с mkdocs --dev_addr default: '127.0.0.1:8001'

Bogdan
21.12.2017
06:55:20
а, понятно. я такие ситуации просто разруливал через 2 сериализатора (на чтение и на запись) или если разница небольшая, то через read_only/write_only поля

Dan
21.12.2017
06:56:29
ну я так попробовал пока пробую как лучше все это организовать в коде

Souren
21.12.2017
07:35:36
Такой вопрос: если мне нужно проверять права на владение объектом, например в drf, я делаю в модели поле owner = ForeignKey на модель User. Всё правильно делаю, или есть способ лучше?

Dan
21.12.2017
07:37:35
нету

Souren
21.12.2017
07:37:47
ок

Massimo
21.12.2017
07:53:19
В хроме есть история изменений в developer tools?

Google
Massimo
21.12.2017
07:54:56
Нет, я менял стили и смотрел что как выглядит. В итоге сделал как нравится а что именно менял не помню)

Bogdan
21.12.2017
07:55:44
не, нету

разве что crtl+z работает

Massimo
21.12.2017
08:04:28
Не, слишком муторно

Сергей
21.12.2017
08:04:39
всем привет. помогите составить запрос.. есть модель с полями datetime, hours. мне нужно получить список уникальных дат и суммы часов входящих в эту дату.. не могу придумать как реализовать одним запросом.. пример результата: [{'date': 01.12.2017, 'hours': 5}, {'date': 02.12.2017, 'hours': 7}] хотя в таблице 3 записи: [{'date': 01.12.2017, 'hours': 5}, {'date': 02.12.2017, 'hours': 4}, {'date': 02.12.2017, 'hours': 3}]

Dan
21.12.2017
08:06:26
Model.objects.values('date__date', 'hours'),annotate(hours=Sum('houts'))

так примерно

Сергей
21.12.2017
08:06:56
так он возвращает все 3 записи

Dan
21.12.2017
08:07:13
сейчас попрубую

Сергей
21.12.2017
08:08:59
{'start_date': datetime.datetime(2017, 12, 19, 20, 0, tzinfo=<UTC>), 'hh': 1.0}, {'start_date': datetime.datetime(2017, 12, 20, 1, 0, tzinfo=<UTC>), 'hh': 1.0}

Model.objects.values('date__date', 'hours'),annotate(hours=Sum('houts'))
при таком варианте ругается на django.core.exceptions.FieldError: Cannot resolve keyword 'date' into field.

Dan
21.12.2017
08:15:04
да

Bogdan
21.12.2017
08:15:21
Model.objects.values('date').annotate(hours=Sum('hours'))

Dan
21.12.2017
08:15:25
нет __date модификатора

сейчас пробую обойти

Bogdan
21.12.2017
08:15:33
так вроде group by делается

Dan
21.12.2017
08:15:53
оно и нужно

Сергей
21.12.2017
08:16:14
Model.objects.values('date').annotate(hours=Sum('hours'))
там дата в формате datetime, а мне нужно по дням(допустим)

Google
Bogdan
21.12.2017
08:16:47
а, тогда нужно джанга 11 и __date

Dan
21.12.2017
08:17:29
нет такого модификатора

Сергей
21.12.2017
08:17:46
джанга 11 )

Bogdan
21.12.2017
08:18:19
*поправка - джанга 9

https://docs.djangoproject.com/en/1.9/ref/models/querysets/#date

Dan
21.12.2017
08:20:14
тогда он почемуто не работает в values

Сергей
21.12.2017
08:20:21
https://docs.djangoproject.com/en/1.9/ref/models/querysets/#date
Это понятно, но это для фильтов.. а в values не хочет работать

Bogdan
21.12.2017
08:20:41
это странно

Dan
21.12.2017
08:24:41
from django.db.models.functions import TruncDate Model.objects.annotate(date=TruncDate('add_time')).values('date').annotate(zz=Sum('income')).values('date', 'zz')

Bogdan
21.12.2017
08:25:02
нашел Event.objects.annotate(date=Cast('date_created', DateField())).values('date')

Dan
21.12.2017
08:25:12
поля надо свои только поставить

Сергей
21.12.2017
08:25:19
щя оба варианта посмотрю)

Bogdan
21.12.2017
08:26:59
с группировкой >>> Event.objects.annotate(date=Cast('date_created', DateField())).values('date').annotate(Count('id')).order_by() <PolymorphicQuerySet [{'date': datetime.date(2017, 10, 11), 'id__count': 1}, {'date': datetime.date(2017, 11, 28), 'id__count': 4}]>

Сергей
21.12.2017
08:28:42
Bogdan
21.12.2017
08:29:18
нужно еще order_by() в конец

Сергей
21.12.2017
08:30:25
Artem
21.12.2017
08:30:31
не работает ?
можно поверх дистинкта добавить

Dan
21.12.2017
08:30:55
ага
покажи код ?

Bogdan
21.12.2017
08:31:32
нужно еще order_by() в конец
проблема в этом ^^^

Google
Сергей
21.12.2017
08:33:02
rr = RequestReport.objects.filter(author=request.ad_user, start_date__month=month, start_date__year=year, obj_type='report').order_by('start_date') rr = rr.annotate(date=TruncDate('start_date')).values('date') rr = rr.annotate(hh=Sum('hours'), distinct=F('date')).values('date', 'hh')

Artem
21.12.2017
08:33:30
start_date__month=month, start_date__year=year - эту хрень замени на datetime.now()

Dan
21.12.2017
08:33:55
неее

Сергей
21.12.2017
08:34:21
и что мне даст now? если мне надо записи за этот месяц

Artem
21.12.2017
08:34:44
а, тогда отбой!

Dan
21.12.2017
08:34:54
мне кажется дистинкт лишний

Admin
ERROR: S client not available

Dan
21.12.2017
08:35:51
а еще query распечатай

Сергей
21.12.2017
08:36:13
отбой)

Artem
21.12.2017
08:36:21
мне кажется дистинкт лишний
он скатати, принимает булевку

Сергей
21.12.2017
08:36:29
{'hh': 2.0, 'date': datetime.date(2017, 12, 20)}

да, он там лишний.. это я экспеременитровал

Dan
21.12.2017
08:36:54
дистинкт лишний был ?

Сергей
21.12.2017
08:37:17
он скатати, принимает булевку
я тоже так думал: 'bool' object has no attribute 'resolve_expression'

Bogdan
21.12.2017
08:37:22
я уж собрался делать скрин без/с order_by()

Artem
21.12.2017
08:37:23
да, он же сводит до минимаицаии

Сергей
21.12.2017
08:37:30
дистинкт лишний был ?
не, order_by надо было в конце добавить)

Андрей
21.12.2017
08:37:47
вторая и третья строка в одну мержатся: rr = rr.annotate(date=TruncDate('start_date'), hh=Sum('hours')).values('date', 'hh').order_by('start_date')

Dan
21.12.2017
08:38:01
у меня без него работает

Google
Сергей
21.12.2017
08:38:52
спасибо))

Bogdan
21.12.2017
08:39:48
у меня без него работает
зависит от того, что там по умолчанию в модели прописано. надежней всегда добавлять

Dan
21.12.2017
08:40:38
ну возможно но по теории на группировку не должно влиять

Bogdan
21.12.2017
08:40:53


первая строка С ордер, вторая БЕЗ

и нет, я не перепутал

это какой-то костыль видимо в орм?

Dan
21.12.2017
08:57:26
аа у меня было такое что поле которое прописывается в ordering включалось в группировку и получается пустой order_by это дело сбрасывает

rq
21.12.2017
08:58:45
а можно ли как-то поля модели в том же порядке выводить в темплэйт?

rq
21.12.2017
08:59:39
да

или как сделать reuse темлэйт для вывода данных без прописывания object.name для каждого поля

Bogdan
21.12.2017
09:11:42
или как сделать reuse темлэйт для вывода данных без прописывания object.name для каждого поля
object._meta.fields смотри. оттуда verbose_name можно выдернуть и значение через value_from_object()

Dmitriy
21.12.2017
09:12:14
rq
21.12.2017
09:17:49
я выдёргивал оттуда названия через verbose_name(делал заголовки для таблиц), и делал model.objects.values(), то есть почти получил такой темплейт, но порядка в dict нету и через перезапуск получалось данные прыгали по колонкам, я подумаю про наследование

Bogdan
21.12.2017
09:27:05
у _meta.fields есть порядок ЕМНИП

может сделать какую-нибудь сортировку через него и отдавать шаблону список словарей (словарь с параметрами поля)

Страница 803 из 1273