私はWebアプリケーションを開発するためにDjangoを使用しています。私はユーザーの異なる役割を作成しました。例えばCunstomerUser, GoodUser, Admin
...などです。Djangoのさまざまな役割:Webページの異なるコンテンツを表示
ここでは、ログイン時にさまざまなことを示したいと思います。たとえば、ポップアップを開くと、CustomerUser
にはコメント用のテキストエリアが表示され、Admin
には彼ができることが表示されます。
私は、我々はtemplate
レベルでそれを行うことが分かっよう:
{% if request.user.is_superuser %}
.... superuser content
{% else %}
.... non-superuser content
{% endif %}
しかし、どのように私はこのtemplate
で使用されるjavascriptファイルで行うことができますか?なぜなら、異なる機能は役割に依存していることを彼らに示したいからです。たとえば、私は、テンプレートに含まれているexample.js
における役割を決定したい:
<html>
<script type="text/javascript" src="example.js"></script>
...
</html>
私が見つけた現在のソリューションは、すべてのjavasciptファイルが使用できるように、テンプレートに変数グローバルJavaScriptを作成することです:
<script>
var userType = '{{user.get_usertype}}';
</scirpt>
これを行うより良い方法はありますか?変数のグローバルは私が思うに使用するのはあまり良くありません...多分私はダンプパターンの設計を使用しました。何か案は?ありがとう!
私は、最も適切な方法は、ユーザーの役割を見て確認することで、別のテンプレートをレンダリングすることだと思います。テンプレートに多くの一般的なコンテンツがある場合、Djangoの '{%include%}'と '{%block%}'タグを使用してDRYの原則に従うことができます。 – Compadre