 <p>well, you want to hide the fields in the gridfield detail form? that cannot be done in your pages <code>getCMSFields()</code>, as the grid is responsible for generating the detail form. Two possible solutions:</p> <p>1) tell the grid to hide that fields with a custom component. I dunno how to do it</p> <p>2) tell your Rotator class to show the fields ONLY if the related page is a homepage:</p> <pre><code>public function getCMSFields() { $fields = parent::getCMSFields(); //...other stuff.... $isOnHomePage = ($this-&gt;Page() &amp;&amp; $this-&gt;Page()-&gt;ClassName == 'HomePage'); //put in your own classname or conditions if(!$isOnHomePage) { //remove the fields if you're not on the HomePage $fields-&gt;removeByName('Body'); //we need to suffix with "ID" when we have a has_one relation! $fields-&gt;removeByName('BackGroundImageID'); } return $fields; } </code></pre>