'Return a list of template names to be used for the request. Must return
a list. May not be called if get_template is overridden.'

def get_template_names(self):

    try:
        names = super(SingleObjectTemplateResponseMixin, self).get_template_names()
    except ImproperlyConfigured:
        names = []
    if (self.object and self.template_name_field):
        name = getattr(self.object, self.template_name_field, None)
        if name:
            names.insert(0, name)
    if hasattr(self.object, '_meta'):
        names.append(('%s/%s%s.html' % (self.object._meta.app_label, self.object._meta.object_name.lower(), self.template_name_suffix)))
    elif (hasattr(self, 'model') and hasattr(self.model, '_meta')):
        names.append(('%s/%s%s.html' % (self.model._meta.app_label, self.model._meta.object_name.lower(), self.template_name_suffix)))
    return names
