[PySide] Setting cell displays with a model or a delegate?

How do you decide whether to control the display of an item in the model or in the delegate?

This is more of a general question although I do have a specific case. How do you decide where to override the display of a column (in this case the font)? Do you use the model’s data() method along with the FontRole or override the paint() method of the delegate? Is there a best practices in this case?

I have a table column that displays values the artist selects. If they haven’t selected anything I want to display some lightly-colored and italicized text in the cell. If they have selected items I want it to display their selection. I am already using a delegate to control the editor and display for that column. Should I check if the artist has selected anything and display a value accordingly using the model or the delegate?