Size: a a a

Django [ru] #STAY HOME

2019 June 18

DT

Dan Tyan in Django [ru] #STAY HOME
yasya huyase
как добавить экспорт отдельного приложения из админки в формат xlsx?
источник

YP

Yevhenii Prontsevych in Django [ru] #STAY HOME
Я туда в первую очередь заглянул, но пока ничего полезного не нашел.
Находил https://github.com/axnsan12/drf-yasg/issues/347
Как раз мой случай, но к сожалению, без решения
источник

BK

Bogdan Kalashnikov in Django [ru] #STAY HOME
тебе в любом случае нужен сериализатор с явным указанием полей. он может быть фейковым (только для доков), но он нужен
источник

BK

Bogdan Kalashnikov in Django [ru] #STAY HOME
а раз его надо делать, то проще указать поля из to_representation в основном сериализаторе, а в методе оставить логику
источник

yh

yasya huyase in Django [ru] #STAY HOME
спасибо
источник

YP

Yevhenii Prontsevych in Django [ru] #STAY HOME
Bogdan Kalashnikov
а раз его надо делать, то проще указать поля из to_representation в основном сериализаторе, а в методе оставить логику
В том то и дело, что задумка моего руководства, чтобы в to_representation доставать поля связанного обьекта. Грубо говоря, этим методом мы решили вот такую задачу:
Вместо:
{
   'id':1,
   'invite_reason': 'loves cheese',
   'person':{
       'first_name':'Barry',
       'last_name':'CheeseLover',
   }
}
Вот такой json:
{
   'id':1,
   'invite_reason': 'loves cheese',
   'first_name':'Barry',
   'last_name':'CheeseLover',
}
источник

YP

Yevhenii Prontsevych in Django [ru] #STAY HOME
Bogdan Kalashnikov
тебе в любом случае нужен сериализатор с явным указанием полей. он может быть фейковым (только для доков), но он нужен
Фейковый сериализатор - тоже об этом сразу подумали. Но сказали разобраться, может можно это сделать как то силами drf-yasg
источник

BK

Bogdan Kalashnikov in Django [ru] #STAY HOME
а попробуй указать first_name = CharField(source='person.first_name', read_only=True)
источник

BK

Bogdan Kalashnikov in Django [ru] #STAY HOME
ЕМНИП такое так решалось
источник

YP

Yevhenii Prontsevych in Django [ru] #STAY HOME
Там в доке есть некий swagger_schema_fields. Попытаюсь разобраться можно ли с ним как то совладать.
источник

YP

Yevhenii Prontsevych in Django [ru] #STAY HOME
Bogdan Kalashnikov
а попробуй указать first_name = CharField(source='person.first_name', read_only=True)
Я так сначала и сделал. Беда в том, что в сериализаторе связанного обьекта тоже накручено всякого, и мне сказали что нужно поля дёргать прям с него.
источник

BK

Bogdan Kalashnikov in Django [ru] #STAY HOME
бррр
источник

yh

yasya huyase in Django [ru] #STAY HOME
как поменять цвет шрифта например или бэкграунда в шаблоне приложения в зависимости от введенных данных в форме?
источник

BK

Bogdan Kalashnikov in Django [ru] #STAY HOME
to_represantion это вообще на крайний случай всегда
источник

YP

Yevhenii Prontsevych in Django [ru] #STAY HOME
        foo = super().to_representation(instance)
       bar = foo.pop('value_object')
       foo.update(bar)
       return foo
источник

YP

Yevhenii Prontsevych in Django [ru] #STAY HOME
Как то так. Там еще и GenericForeignKey есть...)
источник

BK

Bogdan Kalashnikov in Django [ru] #STAY HOME
Yevhenii Prontsevych
        foo = super().to_representation(instance)
       bar = foo.pop('value_object')
       foo.update(bar)
       return foo
да понятно, автодокам это не понравиться 100%. я в теории знаю как написать SerialzierFactory, который будет объединять поля нескольких сериализаторов, но это костыль
источник

S

Spirit💎 in Django [ru] #STAY HOME
celery -A proj events не выдает такой скрин, а просто черный экран. сталкивался кто с таким?
источник

BK

Bogdan Kalashnikov in Django [ru] #STAY HOME
Yevhenii Prontsevych
Как то так. Там еще и GenericForeignKey есть...)
еще лучше. я помню как он на таблице 100 записей создавал примерно 300 запросов без возможности оптимизировать
источник

YP

Yevhenii Prontsevych in Django [ru] #STAY HOME
Bogdan Kalashnikov
еще лучше. я помню как он на таблице 100 записей создавал примерно 300 запросов без возможности оптимизировать
В данном случае, это уже не совсем мой вопрос. Мне сказали "так надо".
источник