第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

從 JavaScript 變量訪問 Django 變量

從 JavaScript 變量訪問 Django 變量

慕勒3428872 2022-09-02 21:04:16
首先,我想說這是我在這里的第一個問題?。ㄈ绻@是多余的或重復(fù)的,請原諒我)我從Django模板調(diào)用JS腳本時遇到了一些問題:{% for suggestion in suggestions %}    <img class="catalogue-poster" src="{{ suggestion.poster }}" alt="Portada"  onclick="                         document.getElementById('{{form.title.auto_id}}').value = '{{suggestion.title}}'        document.getElementById('{{form.year.auto_id}}').value = '{{suggestion.year}}'        document.getElementById('{{form.director.auto_id}}').value = '{{suggestion.director}}'        document.getElementById('{{form.rating.auto_id}}').value = '{{suggestion.rating}}'        document.getElementById('{{form.poster.auto_id}}').value = '{{suggestion.poster}}'        document.getElementById('{{form.trailer.auto_id}}').value = '{{suggestion.trailer}}'        document.getElementById('{{form.synopsis.auto_id}}').value = '{{suggestion.synopsis}}'        document.getElementById('{{form.cast.auto_id}}').value = '{{suggestion.cast}}'      " />{% endfor %}所以,首先,我如何在外部聲明一個函數(shù)。我是一名C開發(fā)人員,抱歉我的無知。我試圖在外面創(chuàng)建一個腳本,例如<script>    function foo() {      console.log('Hey');    });</script>并以這種方式調(diào)用它:<img class="catalogue-poster" src="{{ suggestion.poster }}" alt="Portada"  onclick="foo()"/>  但是這個在純HTML上使用django模板的簡單事情似乎不起作用......另一方面,真正的問題是,有沒有辦法訪問使用js變量在渲染中傳遞的Django變量?如:const jsVariable = 'title';document.getElementById('{{form.jsVariable.auto_id}}').value = '{{suggestion.jsVariable}}'我還沒有找到任何方法來做到這一點,也許還有另一個好主意!
查看完整描述

3 回答

?
慕娘9325324

TA貢獻(xiàn)1783條經(jīng)驗 獲得超4個贊

我試過一個例子。其中 是從 python 腳本發(fā)送變量并在 JavaScript 中訪問其值


1) 在 views.py


from django.shortcuts import render


def home_view(request):

    var_name = 'hello'

    return render(request, 'home.html', {'var_name':var_name})

2) 在 html 文件中(首頁.html)


<html>

    <h1>Home Page</h1>

    <input type="button" value="Submit" onclick="fun()">


    <script>

        function fun(){

            console.log('hello world '+ '{{var_name}}' );

        }

        var temp = '{{var_name}}';

        console.log(temp + 20);

    </script>

</html>


如果我點擊提交按鈕( 你好世界你好 ) 打印在控制臺。


我存儲了var_name的溫度值,可以進(jìn)一步使用。


查看完整回答
反對 回復(fù) 2022-09-02
?
白衣非少年

TA貢獻(xiàn)1155條經(jīng)驗 獲得超0個贊

從您的示例中,看起來您希望以編程方式訪問Javascript中的Django模型的屬性。


主要結(jié)論是,您首先需要在Javascript中公開要訪問的數(shù)據(jù)結(jié)構(gòu)(即模型)。


下面是您可以嘗試的簡單、經(jīng)過編輯的概念驗證。


import json


def my_view(request):

    obj = MyModel.objects.get(1)

    obj_dict = {

        "foo": obj.foo,

        "bar": obj.bar,

    }

    return render(request, 'my_view.html', context={'obj_json': json.dumps(obj_dict)} )


<script>

var obj = {{obj_json}};


var field = 'foo';

console.log(obj[field]);

查看轉(zhuǎn)換 Django 模型對象到字典,所有字段都完好無損,了解將 Django 模型序列化為字典的選項。


查看完整回答
反對 回復(fù) 2022-09-02
?
湖上湖

TA貢獻(xiàn)2003條經(jīng)驗 獲得超2個贊

好吧,最后我找到了兩個暴露的問題的解決方案。

  1. 首先,我聲明的腳本函數(shù)不起作用,因為它似乎有一個屬性叫做autocomplete(參見autocomplete HTML屬性),所以,你不能用這個名字聲明一個JavaScript函數(shù),我的失敗。Uncaught TypeError: autocomplete is not a function

  2. 最后,我發(fā)現(xiàn)的簡單解決方案是將一組字典傳遞給模板:

return render(request, 'example.html', {'form': form, 'suggestions': suggestions })

然后在模板中:

{% for suggestion in suggestions %}

    <img src="{{ suggestion.poster }}" onclick="autocompleteMovie({{suggestion}});" />

{% endfor %} 


<script>

    function autocompleteMovie(suggestion){

        for (let field in suggestion)

            document.getElementById('id_' + field).value = suggestion[field] 

    }

</script

將其與問題進(jìn)行比較,確實簡化了問題。


查看完整回答
反對 回復(fù) 2022-09-02
  • 3 回答
  • 0 關(guān)注
  • 95 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號