Row over race card in by-election fight