По поводу действий в админке — да, там не всё так прозрачно как кажется.
Например, не вы не хотите юзать сигналы (signals), т.к. в них проблемно узнать был изменён объект или он новый (pre_save и проверка по pk — малость хак). Поэтому вы решили просто переопределить методы ModelAdmin (например, save_model и delete_model), но какова же будет ваша радость, когда вы узнайте, что код в методе delete_model, который вы в него написали будет срабатывать только когда вы удаляйте объект с его страницы редактирования (внизу кнопочка), а вот если выбрать кучу записей в админке и выбрать действие для удаления — этот метод не отработает, т.к. там всё удаление идёт через queryset.delete().
Я был сильно удивлён и раздосадован, когда столкнулся с этим, так как большинство сигналов уже было переписано, поэтому пришлось создать небольшой пакет, который исправляет эту хренотень: django-custom_delete_selected.
Читал где-то, что лучше два разных взять, главное чтобы размером одинаковым были — это такая своего рода защита от какой-нибудь поломки у моделей. Вдруг у всей бы партии была неисправность, которая через год обнаружится — оба винта бы на смарку пошли, а так вероятность поломки уменьшилась.
Первый раз покупаю на игры там, решил купить «Mini Motor Racing»: привязал карту, нажал «купить» — деньги сняли, но сказали, что что-то не так с картой и игра не купилась. Мда. Супер.
Вчера заказал себе ZyXEL NSA325 с амазона + 2 HDD по 2TB (WD и Seagate) — если бы уже в продаже было сие чудо, то отменил бы заказ и заказал его… Но… не судьба.
А то что-то совсем не понятно — никто не участвует что ли из России в этом году? :(
Например, не вы не хотите юзать сигналы (signals), т.к. в них проблемно узнать был изменён объект или он новый (pre_save и проверка по pk — малость хак). Поэтому вы решили просто переопределить методы ModelAdmin (например, save_model и delete_model), но какова же будет ваша радость, когда вы узнайте, что код в методе delete_model, который вы в него написали будет срабатывать только когда вы удаляйте объект с его страницы редактирования (внизу кнопочка), а вот если выбрать кучу записей в админке и выбрать действие для удаления — этот метод не отработает, т.к. там всё удаление идёт через queryset.delete().
Я был сильно удивлён и раздосадован, когда столкнулся с этим, так как большинство сигналов уже было переписано, поэтому пришлось создать небольшой пакет, который исправляет эту хренотень: django-custom_delete_selected.
$171.99 — ZyXEL 2-Bay High-Performance Digital Media Server and Network Attached Storage (NSA325)
$107.99 — Seagate ST2000DM001 Barracuda 7200RPM 2 TB SATA 6 GB/s NCQ 64 MB Cache 3.5-Inch Internal Bare Drive
$99.99 — Western Digital Caviar Green 2 TB Desktop Hard Drive WD20EARX
+ $91.85 за доставку через ebtd (т.к. они там упаковывают всё очень хорошо, страшно было за hdd).
Подтянул там RAID1 и сижу теперь радуюсь :) Достаточно бюджетное решение вышло и без геморра со сборкой и настройкой.
Спасибо за Ваши труды, распечатаю себе.