2015-10-14 77 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”