'Validate that radio_fields is a dictionary of choice or foreign key fields.'

def validate_radio_fields(self, cls, model):

    from django.contrib.admin.options import HORIZONTAL, VERTICAL
    if hasattr(cls, 'radio_fields'):
        check_isdict(cls, 'radio_fields', cls.radio_fields)
        for (field, val) in cls.radio_fields.items():
            f = get_field(cls, model, 'radio_fields', field)
            if (not (isinstance(f, models.ForeignKey) or f.choices)):
                raise ImproperlyConfigured(("'%s.radio_fields['%s']'    is    neither    an    instance    of    ForeignKey    nor    does    have    choices    set." % (cls.__name__, field)))
            if (not (val in (HORIZONTAL, VERTICAL))):
                raise ImproperlyConfigured(("'%s.radio_fields['%s']'    is    neither    admin.HORIZONTAL    nor    admin.VERTICAL." % (cls.__name__, field)))
