Other articles


  1. DRF Best Practices01: DynamicFieldsModelSerializer

    DRF 默认权限设定无法对每个接口进行明细的权限设定, 对其增加DrfActionPermission, 利用ViewSet action,为所有接口设定权限。

    # settings.py
    REST_FRAMEWORK = {
        "DEFAULT_PERMISSION_CLASSES": (
            "rest_framework.permissions.IsAuthenticated",
            "XXX.contrib.drf.permissions.DrfActionPermission"
        )
    }
    
    # 非ModelViewSet 类,是否放行
    REST_DRF_ACTION_PERMISSION_DEFAULT = False
    
    class DrfActionPermission(permissions.BasePermission):
        authenticated_users_only = True
        action_perms_map = {
            "GET": ["%(app_label)s.action_get_%(model_name)s__%(action_name)s"],
            "OPTIONS": [],
            "HEAD": [],
            "POST": ["%(app_label)s.action_post_%(model_name)s__%(action_name)s …
    read more

links

social