管理面板中的业务逻辑

时间:2021-05-26 09:51:03

标签: python django admin crud

<块引用>

我是 Python 新手,我创建了两个模型(Shoes 和 Order) 我可以通过管理面板添加记录,但我希望每次添加订单记录时检查鞋子是否可用!我应该把逻辑放在哪里?

型号: enter image description here

1 个答案:

答案 0 :(得分:1)

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

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

@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 时进行检查。

相关问题