2010-02-18 13 views
5

Django ile grup temelli izinler oluşturmayla ilgili iyi belgelere veya kod örneklerine beni bir tür ruh gösterebilir mi? Gereksinimlerim oldukça basit - Bir kullanıcının ait olduğu gruplara bağlı olarak işlevselliği etkinleştirmem/devre dışı bırakmam gerekiyor.Django: Grup tabanlı izinler örneği/dokümanlar?

cevap

3

İşte temel bir örnek.

bakınız: Her şeyden http://www.thinkjson.com/group-permissions-in-django/

Öncelikle, Rapor adında bir model olduğunu varsayalım.

class Report(models.Model): 
    name = models.CharField(max_length=100) 
    contents = models.TextField(blank=True) 
    authorized_groups = models.ManyToManyField('ReportGroup', null=True, blank=True, related_name='report_groups')  
    def __str__(self): 
     return self.name 

Grup izinleriyle işlemek için kullanıcı modeli için bir ara bir model oluşturabilir:

class ReportGroup(models.Model): 
    name = models.CharField(max_length=100) 
    authorized_users = models.ManyToManyField(User, null=True, blank=True, related_name='report_users') 
    def __str__(self): 
     return self.name 

Şimdi, Django yönetim bir rapor düzenlerken, bir rapora grup izinleri atayabilirsiniz . Bu gruplar, bir gruba ait olan tek bir çekimde seçmenizi sağlayan Django yöneticisinde Rapor Grupları olarak uygulanabilir.

İlgili konular