給定一個帶有多對多模型的Django模板變量,是否可以將它傳遞給一個Javascript函數並訪問它?如何從Javascript訪問Django多對多模型?
(我試圖得到的是當前用戶所屬的組的列表,包括pk)。
例如,如果我有一個用戶jsmith的屬於兩個組,阿爾法和測試:
<html>
<script type="text/javascript">
mangle_data("{{ user.name }}", "{{ user.groups }}", "{{ user.groups.all }"");
</script>
</html>
function mangle_data(username, groups, all) {
alert("username = " + username); // works. output = "jsmith"
alert("user.groups = " + groups); // output = "django.db.models.fields.related.ManyRelatedManager object"
alert("all = " + all); // output = "[Group alpha; Group beta;]"
}
在所有情況下,傳遞到的Javascript的參數,是一個單個平面化串。理想情況下,我會得到一個對象,甚至是一個包含組名和列表pk的列表。
當然,我可以找到一個組的PK,因爲它的名字 - 但這是更多的步驟。如果我可以直接從Django模板獲取數據到Javascript中,那麼它會更清晰。
是否有這樣做直接Django模板內的一些方法? –
@JohnC你總是可以編寫一個模板標籤/過濾器。 –