2010-11-02 8 views
11

Tôi đang tìm cách tốt nhất để thực hiện quyền người dùng để cho phép người dùng chỉnh sửa các phiên bản mô hình cụ thể.Django: Thêm quyền vào một bản mẫu cụ thể

Ví dụ, tôi có hai mô hình như vậy:

model RadioChannel(models.Model): 
    name = models.CharField(max_length=150, unique= True) 
    number = models.IntegerField(unique= True) 

model ProgramSchedule(models.Model): 
    channel = models.ForeignKey("RadioChannel") 
    name = models.CharField(max_length=150, unique= True) 
    start_time = models.DateTimeField() 

Bây giờ nhà khai thác của tôi là xây dựng-in người dùng Django của tôi. Tôi muốn tạo nhóm cho những người dùng này để họ chỉ có thể thêm/xóa/chỉnh sửa Lịch biểu chương trình được phép. Ngoài ra, tôi muốn thêm các nhóm cho những người dùng này vào bảng quản trị.

Cảm ơn.

Trả lời

10

Bạn đang tìm kiếm triển khai quyền đối tượng. Một so sánh tốt là ở đây: http://djangopackages.com/grids/g/perms/

Shameless plug: Heres ngã ba của tôi về một mỗi đối tượng ứng dụng cho phép rất phổ biến: http://github.com/azizmb/django-authority

+0

Nghe hay đấy! Bạn có tài liệu cũng làm thế nào để thêm quyền từ mã python? Đó là điều tôi đã bỏ lỡ trong phiên bản gốc của tài liệu. – sebpiq

5

Nếu tôi nhận được bạn khắc phục, những gì bạn cần phải thực hiện được gọi là cấp hàng quyền trong Django. Có một cái nhìn tại đây nếu nó giúp. http://code.djangoproject.com/wiki/RowLevelPermissionsDeveloper

+1

Điều này cho phép bạn đặt quyền ở cấp hàng tức là ví dụ cụ thể của mô hình. –

4

Tôi khuyên bạn nên sử dụng Django Guardian cho các quyền cấp đối tượng.