私のアプリにはOrder
とInvoice
モデルがあります。 Order
の属性はapproved
です。管理者がDjango-adminにapproved=True
を設定すると、顧客は注文(Invoice
)を支払うことができることを通知されます。関連するフィールドに関してクリーンメソッドをオーバーライドする方法はありますか?
にはfinal_price
という属性があり、管理者が注文を承認する前に管理者が設定しなければならないという問題があります。
Django-adminには、オブジェクトがOrder
オブジェクトにインライン展開されています。私は管理者がfinal_price
属性を設定し、approved
の注文をすぐに設定できるようにします。
clean(self)
メソッドをOrder
に上書きしました。
def clean(self):
if self.approved and not self.invoice.final_price:
raise ValidationError(_("Invoice final price has to be set on approved order!"))
問題は、管理者が一度にInvoice.final_price
とOrder.approved
を設定した場合、それはInvoice
が変更されようとしていることを知らないため、クリーンな方法はValidationError
を上げることです。
この問題を解決する方法はありますか?