2015-10-14 81 views
0

您好,我的項目在Django框架和AngularJS工程。我想要實現的是用戶登錄一次,如果他是部門1,他們的狀態將變爲1; 2如果他在部門2等等。問題是一些部門ID是01,而不是1。由於這部分AngularJS如何使用或在Django Tastypie

$scope.dept = '{{ dept }}'; 
$scope.update_personlist = function(){ 
    console.log('Stage1: Loading Persons..... '); 
    personresource_url.get({pm_id__startswith: $scope.dept}, 
     function(data){ 
      $scope.personlist = data['objects'][0]['person']; 
      console.log($scope.personlist); 
     },function(data, status){ 
      console.log('hi'); 
     } 
    ); 
}; 

,但這個代碼將只返回部門值爲1,2等代替01.反正我們能做什麼像personresource_url.get({pm_id__startswith: $scope.dept} OR pm_id__startswith: $scope.those startwith zero}?意思是,如果部門1人登錄,他可以看到部門1和部門01人員。有人可以幫忙嗎?對於Tastypie和AngularJS來說,我很安靜。提前致謝。

+0

是部門的「1」與「01」?如果是這樣,你應該[規範化](https://en.wikipedia.org/wiki/Canonicalization)你的數據庫。即當數據進入時,將其放入一個且只有一種格式。如果1不是01,那麼您可能需要一個額外的字段('dept_group'?)來指示哪些部門行屬於一個組。 –

+0

Rogers,無法修改數據庫和格式。這就是這裏的問題 – gentle

+0

嗯,我確定從TastyPie提取時,有一種方法可以查詢'001'或'01'或'1'。但我使用Django Rest Framework,而不是TastyPie。 –

回答

0

您可以覆蓋你的水合物函數來實現這一目標:

def hydrate(self, bundle): 
    if bundle.data['dept'][0] == "0": 
     bundle.data['dept'] = bundle.data['dept'][1:] 
    return bundle 

這種方式,只會被保存沒有前導「0」