Custom fields for custom post types

This is confusing you’re mixing up the terminology of WordPress. A custom post type acts like a post and not a page. If you have a custom post type called “portfolio” and use the proper template hierarchy, you don’t have to do anything special. But you will need to name it single-portfolio.php and not page-portfolio.php.

http://codex.wordpress.org/images/1/18/Template_Hierarchy.png
http://codex.wordpress.org/Post_Types

If on the other hand, if you simply want to use “page” templates ( I think that is what you mean) you will need to write a conditional to display the post meta for only the page-portfolio.php.

The logic is along the lines of:

if (is_page_template('page-portfolio.php')) 
the_meta();

Your default page most likely already has the_meta(); though so you will most likely want to use get_post_meta or get_post_custom so you can have fields specific to your “portfolio”.

ps. It’s much easier to just use a custom post type (not a page template) for this sort of thing .

http://codex.wordpress.org/Custom_Fields#Function_Reference
http://codex.wordpress.org/Function_Reference/is_page_template