簡體   English   中英

在JavaScript中使用django變量

[英]using django variable in JavaScript

我的模特:

class Category(models.Model):    
    category_name=models.CharField(max_length = 100)  
    def __str__(self):  
        return self.Category_name  
class Song(models.Model):  
    category= models.ForeignKey(Category, on_delete=models.CASCADE)  
    pass

 <body> {% load static %} <link rel="stylesheet" type="text/css" href="{% static 'home/index.css' %}" /> <script type="text/javascript"> function printSong(x){ var all = {{x.song_set.all}}; document.getElementById("main"); var them = [{% for song in all %}{{song.song_name}}{% endfor %}]; main.innerHTML = them; } </script> <header> <h2 id="NSM" title="Nigeria Sheet Music">NSM</h2> <p id="welcome"> Welcome {{user.username}}</p> <div class="scrollmenu"> {% for song in all_category %} <a href="# " id="{{song.category_name}}" onclick="printSong('{{ song.category_name }}')">{{song.category_name}}</a> {% endfor %} </div> </header> <div id="left"> <p>playing</p> </div> <div id="right"> <p id="songHeading"> Your Songs <p id="add"><a href="{% url 'home:song-add' %}">add song</a></p> </p> {% for song in user.song_set.all %} <div class="songBack"> <a href="{% url 'home:detail' song.id %}"> {{song.song_name}} </li> <a href="#"> edit</a> <a href="#"> delete</a> </div> {% endfor %} </div> </body> 

我想知道如何在JavaScript文件中包含django變量。 我創建了兩個模型Category和song,我用外鍵將歌曲鏈接到category。 我試圖用JavaScript編寫代碼,以便當選擇類別時,將顯示該類別中的所有歌曲

如果可以通過json顯示歌曲,則可以使用Ajax。 有點像這樣(我在看到您的代碼之前就將它們放在一起,因此模型名稱等有所不同,但作為示例):

function getSongs(category) {
    $.ajax({
    url : "songs/", // links to a django view to get the songs
    type : "POST",
    data : { id }, // you could take the category id from the template eg {{ category.id }}
    dataType : 'json',

    success : function(songs) {
    // an example of getting song titles
    for (i = 0; i < songs.length; i++) {
        song = songs[i]
        title = song.title
        // do something with the title here
        }
    }
  }) 
}

並在“歌曲”上查看

from django.http import JsonResponse
from models import Category

def songs(request):
    if request.method == 'POST':
        category_id = request.POST.get('id')
        category = Category.objects.get(id=category_id)
        songs = category.songs.all()
        jsonSongs = []
        for song in songs:
             jsonSong = {}
             jsonSong["title"] = song.title
             // title used here just to show how you might access aspects of the song model
             jsonSongs.append(jsonSong)
    return JsonResponse(songs, safe=False)

從這里您可以訪問作為json對象的歌曲列表。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM