2012-04-27 91 views
2

我想要得到的django模型對象顯示在一個HTML頁面上。當然,當我嘗試使用{{object}}時,我得到一個錯誤。是否有可能使用JavaScript從django模型數據庫獲取數據?

如何正確獲取django數據模型並使用javascript處理屬性?

的網址:

('^all_companies$', 'companies.views.all_companies') 

的觀點:

def all_companies(request): 
    companies = Company.objects.all().order_by('id')[:5]; 
    return direct_to_template(request, 'all_companies.html', {'companies': companies}); 

的HTML:

{% block sidebar %} 
    <div id="sidebar"> 
     <!-- like google maps, short list of company info --> 
     <ul> 
      {% for comp in companies %} 
       <li>{{ comp }}</li>     
      {% endfor %} 
     </ul> 
    </div> 
{% endblock %} 

的JS:

var tmp = {{ companies }} 

回答

4

在你看來:

from django.core import serializers 
json_serializer = serializers.get_serializer("json")() 
companies = json_serializer.serialize(Company.objects.all().order_by('id')[:5], ensure_ascii=False) 

模板:

var companies = '{{ companies|escapejs }}'; 

這僅僅是爲了讓你的數據模型到JS。爲了操縱它們,你應該創建一些將從JS(通過AJAX)調用的視圖。他們應該可能會返回JSON。查看 http://djangosnippets.org/snippets/622/http://djangosnippets.org/snippets/2102/關於如何從視圖中僅返回JSON。

+0

感謝您的信息,現在我怎麼稱呼js的意見?如果您使用jQuery,請使用 – iCodeLikeImDrunk 2012-04-28 15:16:26

+0

:http://api.jquery.com/jQuery.getJSON/ – frnhr 2012-04-29 12:23:31

0

您必須將您的公司模型數據序列化爲json,因此JavaScript將能夠讀取它。

因此,您需要有兩個模型變量,公司(您現在正在使用的變量)和companies_json來存儲序列化的數據。

from django.core import serializers 
companies_json = serializers.serialize("json", Company.objects.all()) 

我還沒有測試過這個。

相關問題