Django的角色授权体系结构(django roles authorization archite

2019-10-23 01:48发布

您好即时通讯新Django和IM开发存储软件,从连锁店每个店铺都有自己的客户和付款。 所以会有一个特定的商店的员工角色(不需要了解其他门店),并有将是商店的管理员(谁是不是系统管理员的作用,只不过是另一种高层次的员工的角色),需要了解每家商店的支付。

该模型是这样的:

class Store(models.Model):
id = models.IntegerField(max_length=10, primary_key=True, default=0)
name = models.CharField(max_length=20)

def __unicode__(self):
    return self.name

class Clients(models.Model):
store = models.ForeignKey(Store) 
id = models.IntegerField(max_length=10, primary_key=True, default=0)
name = models.CharField(max_length=20)
last_name = models.CharField(max_length=20)

def __unicode__(self):
    return self.last_name

class Payments(models.Model):
client = models.ForeignKey(Clients)  
month_from = models.DateField(default='1111-01-01')
amount = models.IntegerField(default='0')

def __unicode__(self):
    return self.month_from.strftime('%Y-%m-%d')

这是在客户端视图:

@login_required(login_url='/')

def clients(request):
query_string = ''
found_entries = None

if ('q' in request.GET) and request.GET['q'].strip():
    query_string = request.GET['q']

    entry_query = get_query(query_string, ['id', 'name',])
    print entry_query
    found_entries = Clients.objects.filter(entry_query).order_by('id')
    print found_entries
else:
    found_entries = Clients.objects.all()

return render_to_response('clients.html', { 'query_string': query_string, 'found_entries': found_entries }, context_instance=RequestContext(request))

而在HTML我像这样显示的客户端列表:

{% if found_entries %}
     {% for Clients in found_entries %}
         {{ Clients.name }} {{ Clients.last_name }}
     {% endfor %}
{% endif %}

例如雇员的形式储存1并不需要了解店内3的客户端,但需要知道客户从库1,管理员需要了解从每家商店每一位客户。

这是这样做的最佳方式? 我一直在寻找有关Django的守护者,但不知道如果我可以工作了这一点与组权限一个简单的方法。

此外,我认为让每个商店的应用程序从个人和创建所有相应的商店通过Web服务使用tastypie一个导入数据的第二应用程序,这种方式是清洁规模。

文章来源: django roles authorization architecture