2013-06-07 3 views
3

에 데이터를 삽입 내가 항목을 돌려 다음 장고 코드의 검색어있다 : 내가 뭘하고 싶은 것은템플릿을 렌더링 및 로컬 스토리지

def search(request): 
    entries_list = Entry.objects.all() 
    if request.method == 'GET': 
     key = request.GET.get('key', False) 
     entries_list = entries_list.filter(key__icontains=key) 

    return render(request, 'search.html', { 
     'entries': entries_list 
    }) 

내 서식 항목 (키 - 값 쌍)을 인쇄하고, 로컬 저장소에 저장합니다. 어떻게해야합니까? JSON을 반환하거나 직렬화하려했지만 성공하지 못했습니다.

즉, 내 자바 스크립트 코드 (루프) 내가 대신 몇 가지 숫자, 내의 검색어 결과를 삽입 할 : 내가 제대로 질문을 이해한다면

{% extends 'base.html' %} 

{% block head %} 

<script> 
var prefix = "localStorage-"; 
function myFunction() { 
    alert("Page is loaded"); 
    for(var i = 0; i < 10; i++) { 
     var key = i// $("#key").attr('value'); 
     var value = 2*i//$("#value").attr('value'); 
     localStorage.setItem(prefix + key, value);  //******* setItem() 
     //localStorage[prefix+key] = value; also works 
    } 
} 

</script> 


{% endblock %} 

{% block body %} onload="myFunction()" {% endblock %} 

{% block content %} 

{% for e in entries %} 
    <h3> 
     <a href="{% url 'article' e.id %}">{{ e.key }}</a> 
    </h3> 
    {{ e.value|safe }} 
    <hr> 
{% endfor %} 

{% endblock %} 

답변

1

, 당신은 장고에서 자바 스크립트를 생성 할 주형?

... 
function myFunction() 
{ 
    {% for value in entries %} 
     localStorage.setItem(localStorage-{{ forloop.counter0 }}, {{ value }}); 
    {% endfor %} 
} 
.... 

이 각 Entry가 문자열로 변환됩니다

.... 
function myFunction() 
{ 
    localStorage.setItem(localStorage-0, 'string_version_of_entry_0'); 
    localStorage.setItem(localStorage-1, 'string_version_of_entry_1'); 
    localStorage.setItem(localStorage-2, 'string_version_of_entry_2'); 
    ... 
} 
.... 

주 같은 것을 얻을 것입니다. Django 객체를 javascript로 분명히 전송할 수는 없습니다. 변환 방법은 def __unicode__(self)Entry에 추가하여 제어 할 수 있습니다.