我使用Django開發webapp,我創建了不同的用戶角色,例如CunstomerUser, GoodUser, Admin
...等。Django中的不同角色:在網頁中顯示不同的內容
現在我想在他們登錄時向他們展示不同的東西。例如,當他們打開一個彈出窗口時,CustomerUser
將看到一個textarea字段進行評論,而對於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>
目前的解決方案,我發現是在模板創建一個變量全局JavaScript,使所有的javascipt的文件,可以使用:
<script>
var userType = '{{user.get_usertype}}';
</scirpt>
但是,他們是一個更好的方式來做到這一點?變量global不是很好使用,我想......也許我使用了轉儲模式設計。有任何想法嗎?謝謝!
我認爲最正確的方法是檢查用戶在視圖中的角色,從而爲其呈現不同的模板。如果你的模板有許多共同的內容,你可以使用Django的'{%include%}'和'{%block%}'標籤來遵循DRY原則。 – Compadre