2016-09-29 50 views
0

您好我有如下一個Django模型過濾器在Django模型(DATABSE表)中的所有對象:如何獲得基於使用AngularJs

from __future__ import unicode_literals 

from django.db import models 
from django.contrib.auth.models import User 
# Create your models here. 

class Journal(models.Model): 
    name = models.CharField(max_length=120) 
    created_by = models.ForeignKey(User, related_name='+') 
    date_created = models.DateTimeField(auto_now=False, auto_now_add=True) 
    date_modified = models.DateTimeField(auto_now=True, auto_now_add=False) 

    def __unicode__(self): 
     return (self.name) 

下面我angularJs和:

var app = angular.module("journalApp", []); 
    app.controller("myCtrl", function($scope) { 

}); 

我如何在AngularJs中進行查詢,以便基於登錄的用戶從我的Django模型中獲取所有對象?任何想法的傢伙?提前致謝。

回答

1

嘗試在服務器端的這個方法

import json 
from django.http import JsonResponse 
from django.views.generic View 

from .models import Journal 


class JSONResponseMixin(object): 
    """ 
    A mixin that can be used to render a JSON response. 
    """ 
    def render_to_json_response(self, context, **response_kwargs): 
     """ 
     Returns a JSON response, transforming 'context' to make the payload. 
     """ 
     return JsonResponse(
     self.get_data(context), 
     **response_kwargs 
     ) 

    def get_data(self, context): 
     """ 
     Returns an object that will be serialized as JSON by json.dumps(). 
     """ 
     return context 

class JournalView(JSONResponseMixin, View): 

    def get(self, request, *args, **kwargs): 
     response_data = {} 
     response_data['data'] = Journal.objects.filter(created_by=self.request.user).values() 
     return self.render_to_json_response(dict(response=response_data)) 

當然,你需要的視圖將其添加到您的urls.py

客戶端嘗試這種方法

var app = angular.module("journalApp", []); 
    app.controller("myCtrl", function($scope, $http) { 

    var url = "/your-url-to-view"; # {% url 'init_data' %}} 

    $scope.initData = function(){ 
     $http.get(url).then(function(data){ 
      $scope.data = data.data.response; 
     }) 
    } 

});