Size: a a a

Django [ru] #STAY HOME

2021 February 24

BG

Bashir Gaitukiev in Django [ru] #STAY HOME
Мне пришла одна идея. Может она была уже разработана ранее - не зняю. У меня в проекте есть css файл, и в нем гдето 10к сторочек кода, но эти стили- они в 70% общие для каждой страницы моего сайта. А можно ли как в "наследованиях шаблона", вынести эту общую часть в отдельный css файл, а все остальные стили просто добавлять добавочно к каждой странице? Оптимизируется ли работа или это глупая идея?
источник

TC

Tom Cauf in Django [ru] #STAY HOME
Bashir Gaitukiev
Мне пришла одна идея. Может она была уже разработана ранее - не зняю. У меня в проекте есть css файл, и в нем гдето 10к сторочек кода, но эти стили- они в 70% общие для каждой страницы моего сайта. А можно ли как в "наследованиях шаблона", вынести эту общую часть в отдельный css файл, а все остальные стили просто добавлять добавочно к каждой странице? Оптимизируется ли работа или это глупая идея?
Просто разбей на несколько файлов, которые выборочно добавляей на страницы
источник

TC

Tom Cauf in Django [ru] #STAY HOME
Bashir Gaitukiev
Мне пришла одна идея. Может она была уже разработана ранее - не зняю. У меня в проекте есть css файл, и в нем гдето 10к сторочек кода, но эти стили- они в 70% общие для каждой страницы моего сайта. А можно ли как в "наследованиях шаблона", вынести эту общую часть в отдельный css файл, а все остальные стили просто добавлять добавочно к каждой странице? Оптимизируется ли работа или это глупая идея?
То есть делаешь, например general.css для общей части, home.css для домашней страницы, about.css для страницы "О сайте" и т.д. А в шаблонах в родительском шаблоне прописываешь только general и делаешь блок для дочерних файлов. В соответствующих дочерних шаблонах добавляешь нужные ссылки на нужные стили
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
@receiver(post_save, sender=Order)
def order_re_save(sender, instance, **kwargs):
   instance.history_sn = f"{instance.first_sn} ({instance.first_sn.comment_text}); "
   for sn in instance.other_sn.all().order_by('sn_plan_date'):
       instance.history_sn += f"{sn} ({sn.comment_text}); "

дальше по тексту instance.save() ломает все так что аж джанга падает.
Как пересохранить модель в post_save???
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Yegor Kowalew
@receiver(post_save, sender=Order)
def order_re_save(sender, instance, **kwargs):
   instance.history_sn = f"{instance.first_sn} ({instance.first_sn.comment_text}); "
   for sn in instance.other_sn.all().order_by('sn_plan_date'):
       instance.history_sn += f"{sn} ({sn.comment_text}); "

дальше по тексту instance.save() ломает все так что аж джанга падает.
Как пересохранить модель в post_save???
а где instance.save()?
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
@receiver(post_save, sender=Order)
def order_re_save(sender, instance, **kwargs):
   instance.history_sn = f"{instance.first_sn} ({instance.first_sn.comment_text}); "
   for sn in instance.other_sn.all().order_by('sn_plan_date'):
       instance.history_sn += f"{sn} ({sn.comment_text}); "
   instance.save()

трейс: https://dpaste.org/BpDV
источник

DT

Dan Tyan in Django [ru] #STAY HOME
но вообще
ты сохраняешь заказ
сигналом вызываешь сохранение
который вызывает сигнал на сохранение
который сохраняет
....
источник

DT

Dan Tyan in Django [ru] #STAY HOME
чуешь ? =)
источник

ИХ

Илья Хафизов... in Django [ru] #STAY HOME
Raiymbek Azatbekov
ребят, какую библиотеку использовать для распарсивание ексельки в json? я получаю ексельку(заведомо не знаю какие есть столбцы), и сохраняю данные в виде джейсон в бд
я использую pyexcel, офигенная вещь
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
Dan Tyan
но вообще
ты сохраняешь заказ
сигналом вызываешь сохранение
который вызывает сигнал на сохранение
который сохраняет
....
ой прикольно то как. Как тогда поменять текст в поле instance.history_sn и чтоб он сохранился?
источник

Р

Роман in Django [ru] #STAY HOME
Raiymbek Azatbekov
а что нибудь по проще есть?
Пандас сам по себе не умеет читать эксель. Метод read_excel под капотом использует xlrd для xls и openpyxl для xslx. Соответственно их можно и использовать.
источник

Р

Роман in Django [ru] #STAY HOME
Саша Воронов
навскидку хоть pyexcel. тащить пандас для этого — это такой оверхэд, что охереть
+
источник

DT

Dan Tyan in Django [ru] #STAY HOME
Yegor Kowalew
ой прикольно то как. Как тогда поменять текст в поле instance.history_sn и чтоб он сохранился?
combined_str = ''
for
  combined_str += ''

Order.objects.filter(pk=instance.pk).update(history_sn=combined_str)
источник

ИХ

Илья Хафизов... in Django [ru] #STAY HOME
Роман
Пандас сам по себе не умеет читать эксель. Метод read_excel под капотом использует xlrd для xls и openpyxl для xslx. Соответственно их можно и использовать.
++++
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
Dan Tyan
combined_str = ''
for
  combined_str += ''

Order.objects.filter(pk=instance.pk).update(history_sn=combined_str)
ниработаить
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
Dan Tyan
combined_str = ''
for
  combined_str += ''

Order.objects.filter(pk=instance.pk).update(history_sn=combined_str)
код:
@receiver(post_save, sender=Order)
def order_re_save(sender, instance, **kwargs):
   history_sn = f"{instance.first_sn} ({instance.first_sn.comment_text}); "
   for sn in instance.other_sn.all().order_by('sn_plan_date'):
       history_sn += f"{sn} ({sn.comment_text}); "
   Order.objects.filter(pk=instance.pk).update(history_sn=history_sn)

этот код туда сохраняет список, который был до изменения. То-есть приходится дважды сохранять.
Почему-то мне кажется что это из-за m2m. m2m связи по-идее сохраняются уже после post_save
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Yegor Kowalew
код:
@receiver(post_save, sender=Order)
def order_re_save(sender, instance, **kwargs):
   history_sn = f"{instance.first_sn} ({instance.first_sn.comment_text}); "
   for sn in instance.other_sn.all().order_by('sn_plan_date'):
       history_sn += f"{sn} ({sn.comment_text}); "
   Order.objects.filter(pk=instance.pk).update(history_sn=history_sn)

этот код туда сохраняет список, который был до изменения. То-есть приходится дважды сохранять.
Почему-то мне кажется что это из-за m2m. m2m связи по-идее сохраняются уже после post_save
лучше переопредели метод save() у модели, чем сигналы
источник

YK

Yegor Kowalew in Django [ru] #STAY HOME
Artem Gubatenko
лучше переопредели метод save() у модели, чем сигналы
конечно лучше. Ты изменяешь m2m поле. Как во время сохранения ты узнаешь что ты изменил?
источник

AG

Artem Gubatenko in Django [ru] #STAY HOME
Yegor Kowalew
конечно лучше. Ты изменяешь m2m поле. Как во время сохранения ты узнаешь что ты изменил?
ок, а где ты его меняешь? Рядом не можешь дописать изменение этого поля? Модель можно сразу не сохранять (если она уже есть в БД), а сохранить только после изменения через m2m и поля. Один раз.
источник

SG

Sanchez Garcia in Django [ru] #STAY HOME
Как изменить id 1 на другое поле и использовать как ссылку?
источник