在我的應用程序中有Order
和Invoice
模型。 Order
有屬性approved
。當管理員在Django-admin中設置approved=True
時,會通知客戶他們可以支付訂單(Invoice
)。如何覆蓋相關領域的清潔方法?
問題是Invoice
的屬性爲final_price
必須由管理員在管理員批准訂單之前設置該屬性。
在Django-admin中,有Invoice
對象內聯到Order
對象中。我想允許管理員設置final_price
屬性並一次設置approved
訂單。
所以我覆蓋了Order
的clean(self)
方法。
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
一次,清潔方法會引發ValidationError
,因爲它不知道Invoice
即將被改變。
你有什麼建議如何解決這個問題?