Проблема #1: Дублирование кода способов оплаты - В tenants/admin.py был полный список способов оплаты (45 строк) - В orders/management/commands/create_payment_methods.py был другой список - При создании тенанта отсутствовал способ 'account_balance' - Нарушение DRY принципа Решение: Single Source of Truth - Единственный источник истины: команда create_payment_methods - В tenants/admin.py заменено дублирование на call_command() - Удалено 45 строк дублирующего кода - Теперь все тенанты получают одинаковый полный список Проблема #2: AttributeError в админке PaymentMethod - obj.payments.count() вызывал ошибку - В модели Transaction связь называется 'transactions', а не 'payments' Решение: Исправлено в orders/admin.py - obj.payments → obj.transactions (2 места) - Админка PaymentMethod теперь работает корректно Для тенанта buba: - Создан скрипт add_payment_methods_to_buba.py - Добавлен недостающий способ оплаты 'С баланса счёта' Изменённые файлы: - myproject/tenants/admin.py - вызов команды вместо дублирования - myproject/orders/admin.py - исправлено на transactions - add_payment_methods_to_buba.py - скрипт для существующих тенантов
14 KiB
14 KiB