development.ini または production.ini の特定のユーザー定義設定に基づいて、ビュー/テンプレートの内容を変更することは可能ですか?
例として、クラスのすべての生徒をリストするピラミッド Web アプリを開発しているとします。バックエンド データベースには、'student' というテーブルが 1 つだけあります。ここで、テーブル「教師」もデータベースに追加するオプションのスクリプトを開発します。理想的には、Web アプリは両方のケースで実行できる必要があります。教師テーブルが見つからない場合は、クエリを実行せず、生徒の詳細を表示するだけです。教師テーブルが存在する場合、生徒の名前とともに教師の名前が出力されます。
私の考えでは、これは次のいずれかの方法で達成できます-
- 教師と生徒のみのページと生徒のみのページのルート (URL) を分けてください。問題は、学生情報しか持っていない場合、人々が実際に前者に電話をかけるのを止めることができないことです. これにより、不要なエラー ページが表示されます
- .ini ファイルで設定 teacher_enabled=true/false を使用します。この設定には、settings['teacher_enabled'] を介して __ init __.py ファイルでアクセスできます。単一のルート (「ホーム」、「/」など) のみを構成しますが、参照変数が true/false であるかどうかに基づいて、異なるビューにマップします。これは @view_config デコレーターの使用を許可せず、両方のケースのテンプレートを別々にする必要があります
- 再び設定変数を使用して、何らかの方法でビューに渡します。ビューで関連するクエリのみを作成します。例 - teacher_enabled が True の場合、教師テーブルをクエリします。それ以外の場合は、生徒テーブルのみをクエリします。この変数をテンプレートにも渡し、詳細を表示するかどうかを決定します (教師名など)。
私の質問は、これらのアプローチのどれを使用する必要があるかということです。設定変数がビューに渡される場合、どのように行うことができますか? そして、この問題に対処する標準的な方法はありますか?