私は、キーを介してユーザーアカウントをアクティブにする機能をマネージャーに持っています。キーが提供されるとき、いくつかのチェックが実行される必要があります:キーは存在しますか?キーは期限切れですか?そうでない場合、マネージャはアカウントをアクティブにします。Django:例外と戻り値、複数の潜在的な状況を処理する正しい方法は何ですか?
def activate(key):
try:
profile = self.get(key=key)
except self.model.DoesNotExist:
return None
if not profile.key_expired():
## Activate user
return user
return None
問題は、これは「キーが存在しない」、および「与えられたキーの有効期限が切れている」の両方にFalseを返すことはもちろんです。両方にFalseを指定しても、私の上流側の視点には問題が何処にあるのかが分かりません。私はそれがユーザーに不透明であり、問題を助けないので、404エラーはしません。
上流/より有用な情報を与えるためにこれを処理する最良の/正しいジャンゴ/ピジョンの方法は何ですか?カスタムエラーは先進的ですか?私はアップストリーム分析の値を返すべきですか(醜い解決策のようです)?別の方法がありますか?
おかげで使用することをお勧めしたい - 。self.get_query_set()についての取得(キー=キー)この理由は何ですか? – jvc26