2012-04-08 24 views
7

Các tài liệu cho phép/chứng thực cho Django 1,4 cung cấp đoạn mã sau để tạo cho phép tùy chỉnh cách lập trình:Khi nào lập trình tạo quyền Django tùy chỉnh?

Edit: (Tôi muốn sử dụng này cho phép có không nhất thiết liên quan đến một lớp mô hình cụ thể, nhưng quyền tổng quát hơn mà span nhiều loại.)

from django.contrib.auth.models import Group, Permission 
from django.contrib.contenttypes.models import ContentType 

content_type = ContentType.objects.get(app_label='myapp', model='BlogPost') 
permission = Permission.objects.create(codename='can_publish', 
             name='Can Publish Posts', 
             content_type=content_type) 

Source

câu hỏi của tôi là trong đó mã này nên được đặt. Rõ ràng những điều này chỉ nên được tạo một lần, nhưng tôi không muốn phải làm điều đó trong trình bao. Có vẻ như điều này nên được lưu trữ trong một tệp ở đâu đó. (Vì mục đích tài liệu.)

Trả lời

2

Thông thường, chỉ cần thêm các quyền cần thiết vào lớp mô hình tương ứng bằng cách sử dụng thuộc tính meta permissions.

Đây là từ official documentation:

class Task(models.Model): 
    ... 
    class Meta: 
     permissions = (
      ("view_task", "Can see available tasks"), 
      ("change_task_status", "Can change the status of tasks"), 
      ("close_task", "Can remove a task by setting its status as closed"), 
     ) 
+0

Tôi xin lỗi, tôi nên đã làm rõ - đây là cho phép toàn cầu, hoặc điều khoản không được liên kết với một lớp mô hình cụ thể. –

+2

Tôi hiểu. Nếu bạn cất giữ nó trong một vật cố định thì sao? – aruseni

+0

Tôi rất mới đối với cả Python và Django, nhưng tìm kiếm nhanh trên Google chỉ ra rằng đồ đạc có thể là một giải pháp tốt. Tôi sẽ poke xung quanh, cảm ơn! –

Các vấn đề liên quan