私はマネージャーにキーを介してユーザーアカウントをアクティブ化する機能を持っています。キーが提供された場合、いくつかのチェックを実行する必要があります。キーは存在しますか?キーの有効期限が切れていますか?そうでない場合は、マネージャーがアカウントをアクティブ化します。
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エラーはユーザーには不透明であり、問題を解決しないため、私は404エラーを実行しません。
上流でより有用な情報を提供するためにこれを処理するための最良/正しいdjango/pythonicの方法は何ですか?カスタムエラーは今後の方向性ですか?上流の分析のために値を返す必要がありますか(醜い解決策のようです)?別の方法はありますか?