It's not a bug. filter() only inspects model definitions, so it doesn't recognize fullName as a declared field (because it's not - it's an extra argument in a query).
You can add the fullName to WHERE using extra():
Person.objects.extra(where=["fullName LIKE %s"], params=["Alexei%"])