管理面板中的业务逻辑

business logic in admin panel

I'm new with python and I create two models (Shoes and Order) I can add record by admin panel but I want each time that I add order record it's check weather the shoes are available or not! where should I put logic?

型号:

有几个选项可以做到这一点:

A) 在 pre_save 信号上。如果您想在将对象存储到数据库之前进行检查:

@receiver(pre_save, sender=OrderRecord)
def handler_order_check(sender, instance, **kwargs):
    ...

B) 在 post_save 信号或 Molde.save 方法中,将在创建对象后进行检查:

@receiver(post_save, sender=OrderRecord)
def handler_order_check(sender, instance, **kwargs):
    ...

C) 在管理表单上。如果您只想在管理端保留检查,当从 f/e & shell 创建的对象将没有这样的检查时,related docs.

我建议使用 A,因为它会在您每次创建(或更新,取决于实现)时进行检查 OrderRecord