class IdolAdmin(admin.ModelAdmin):

    def change_view(self, request, object_id, form_url='', extra_context=None):
        self.object_id = object_id
return super(IdolAdmin, self).change_view(request, object_id, form_url,
    extra_context=extra_context)

def formfield_for_foreignkey(self, db_field, request, **kwargs):
    if db_field.name == 'idol':
        kwargs['queryset'] = Idol.objects.exclude(pk=self.object_id)
return super(IdolAdmin, self).formfield_for_foreignkey(db_field, request,
    **kwargs)
Disallow Django self-referential foreign key to point to self object