def METHOD_NAME(self, request, view, obj):
    if can_write_object(obj, request):
        return True
    if request.method in permissions.SAFE_METHODS and hasattr(obj, "public"):
        return obj.public
    return False