2016-03-20 19 views
6

Tôi đang sử dụng Vue.js lần đầu tiên. Tôi cần phải serialize các đối tượng của djangoTải dữ liệu json cho lần đầu tiên yêu cầu và hiển thị giống nhau trong Trang chủ

views.py

def articles(request): 
     model = News.objects.all() # getting News objects list 
     modelSerialize = serializers.serialize('json', News.objects.all()) 
     random_generator = random.randint(1,News.objects.count())  
     context = {'models':modelSerialize, 
        'title' : 'Articles' , 
        'num_of_objects' : News.objects.count() , 
        'random_order' : random.randint(1,random_generator) , 
        'random_object' : News.objects.get(id = random_generator) , 
        'first4rec' : model[0:4], 
        'next4rec' : model[4:], 
        } 
     return render(request, 'articles.html',context) 

Tôi đã cố gắng để hiển thị dữ liệu json serialized trong html làm việc của nó tốt ở đó,

Bây giờ, làm thế nào để intialize dữ liệu json trong trường hợp vue và truy cập vào html bằng cách sử dụng thuộc tính v-repeat.

https://jsfiddle.net/kn9181/1yy84912/

Bạn có thể giúp gì không ???

+0

từ phiên bản 1.0 trở lên, v-repeat đã bị xóa do ủng hộ v -cho. Vì vậy, điều này có thể là vấn đề –

+0

Thanks.I đã thay đổi thành v-cho bây giờ, nhưng câu hỏi của tôi liên quan đến, làm thế nào để vượt qua json dữ liệu tuần tự js –

+0

tôi không biết python, nhưng trong php chúng tôi sẽ làm những việc như, 'var json =" "' để chuyển dữ liệu json dưới dạng chuỗi từ php sang js. và 'var obj = JSON.decode (json);' để lấy đối tượng js. –

Trả lời

5

Ví dụ đơn giản.

views.py

def articles(request): 
    context { 
     'articles' : ['a1','a2','a3'] 
    } 
    return render(request, 'articles.html', context) 

articles.html

{% verbatim %} 
<div id="app"> 
    <ul> 
    <li v-for="a in articles">{{ a }}</li> 
    </ul> 
</div> 
{% endverbatim %} 

<script> 
    new Vue({ 
     el : "#app", 
     data : function(){ 
      return { 
       articles : {{ articles | safe }} 
      } 
     } 
    }) 
</script> 

Những điều cần xem ra cho:

  • Các verbatim thẻ để ngăn chặn Django từ render nội dung của thẻ chặn này vì Vue sử dụng cùng một biểu tượng nội suy.
  • Bộ lọc safe để ngăn Django thoát khỏi nội dung.
  • Nếu bạn đang đi qua một cuốn từ điển, hãy xem xét biến nó thành JSON đầu tiên

Nói chung, thích thông qua dữ liệu để Vue qua Ajax

Các vấn đề liên quan