Я использую Django 2.0
Я создал несколько actions
для использования в admin
интерфейсе
def clear_arbitrase(modeladmin, request, queryset):
queryset.update(arbitrase_generated=False)
@admin.register(WallmartRecord)
class WallmartRecordAdmin(admin.ModelAdmin):
actions = [
clear_arbitrase
]
Это обновляет флаг arbitrase_generated
до False
для WallmartRecord
модели.
У меня есть другая таблица для сохранения записи arbitrase
в ArbitraseRecord
Я хочу также удалить запись из ArbitraseRecord
при пометке arbitrase_generated
в False
.
Я пытался реализовать сигнал post_save
в models.py
@receiver(post_save, sender=WallmartRecord)
def post_save_wallmart_record_receiver(sender, instance, *args, **kwargs):
if not instance.arbitrase_generated:
# delete records from ArbitraseRecord
arbitrase_record = ArbitraseRecord.objects.filter(wallmart_record=instance)
if arbitrase_record is not None:
for record in arbitrase_record:
record.delete()
Но, похоже, это не вызов получателя.
Как удалить запись из другой модели при выборе действия администратора?