2014-02-19 24 views
0

我想實現Django的角度的CRUD功能
這是任務模式:無法修復Django的角度CRUD功能

class Task(models.Model): 
    task_name = models.CharField(max_length=50) 
    client_name = models.ForeignKey(Client) 
    status = models.BooleanField(default=False) 
    date = models.DateField('date added', auto_now_add=True) 

    def __unicode__(self): 
     return self.task_name 

這是我加的觀點:

class MyCRUDView(NgCRUDView): 
    model_class = Task 

這是HTML文件:

<div class="container" ng-app="myApp"> 
<div ng-controller="myCtrl"> 
<table class="table"> 
{% verbatim %} 
    <tr ng-repeat="task in tasks"> 
     <td>{{ task.pk }}</td> 
     <td>{{ task.task_name }}</td> 
     <td>{{ task.client_name }}</td> 
     <td>{{ task.date }}</td> 
     <td><input type="checkbox" ng-model="task.status"></td> 
    </tr> 
{% endverbatim %} 
</table> 
</div> 
</div> 

這是一個js文件gular:

var myServices = angular.module('myServices', ['ngResource']); 

myServices.factory('Task', ['$resource', function ($resource) { 
    return $resource('crud/task', {'pk': '@pk'},{}) 
}]); 

var my_app = angular.module('myApp', [/* other dependencies */,'ngCookies']).run(function($http, $cookies) { 
     $http.defaults.headers.post['X-CSRFToken'] = $cookies.csrftoken; 
     //Add the following two lines 
     $http.defaults.xsrfCookieName = 'csrftoken'; 
     $http.defaults.xsrfHeaderName = 'X-CSRFToken'; 
    }); 

my_app.controller('myCtrl', ['$scope','Task', function ($scope, Task) { 
    //Query returns an array of objects, Task.objects.all() by default 
    $scope.models = Task.query(); 


}]); 

Angular腳本不斷給我一個錯誤,說TaskProvider無法識別。對於我的生活,我無法理解我做錯了什麼。該代碼是一個幾乎在文檔中的示例代碼副本的django棱角這裏
http://django-angular.readthedocs.org/en/latest/basic-crud-operations.html

回答

1

任務工廠是myServices模塊上給出但它應該在myApp上。假設沒有其他的錯誤,這應該讓周圍的TaskProvider無法識別的問題......

var my_app = angular.module('myApp', [/* other dependencies */, 
        'ngResource','ngCookies']).run(function($http, $cookies) { 
     $http.defaults.headers.post['X-CSRFToken'] = $cookies.csrftoken; 
     //Add the following two lines 
     $http.defaults.xsrfCookieName = 'csrftoken'; 
     $http.defaults.xsrfHeaderName = 'X-CSRFToken'; 
    }); 

my_app.factory('Task', ['$resource', function ($resource) { 
    return $resource('crud/task', {'pk': '@pk'},{}) 
}]); 

my_app.controller('myCtrl', ['$scope','Task', function ($scope, Task) { 
    //Query returns an array of objects, Task.objects.all() by default 
    $scope.models = Task.query(); 


}]); 

myServices這裏不需要(只需確保您添加ngResource依賴於myApp)。

+0

有些似乎工作,我有一個新的錯誤,說,預期的響應包含一個數組,但有一個對象。看起來resposnse實際上是整個html文件而不是單個任務對象 你能解釋'crud/task'是什麼嗎? – TheGeorgeous