Django Queryset: Transmite el campo VARCHAR en SQL antes de filtrar

Tengo una tabla que no puedo controlar, pero necesito seleccionar de ella. El campo "edificio" es un varchar, y también se define así en mi modelo (no administrado) de django. Pero debe tratarse como un número entero cuando se selecciona de esa tabla (hay valores como "000100" e incluso espacios al final).

Necesito un filtro simple como este:

.annotate(CastInt("building")).filter(building__castint__exact=my_id)

El único problema es que CastInt no existe. ¿Cómo podría uno lograr esto? Estaba mirando .extra () (que ya no deberíamos usar, ya que está en desuso) y RawSQL, pero ¿esperaba una solución que usara solo el Django ORM, sin SQL escrito personalizado?

EDITAR: actualmente usando un hack deaquí (en los comentarios):

Address.objects.extra(where=('CAST(TRIM(building) AS UNSIGNED)=%s',),
                      params=(building_no, ))

funciona, pero feo.

EDITAR II: Vea mi respuesta aceptada, usando mi segundo mejor amigo, la expresión regular.

Respuestas a la pregunta(2)

Su respuesta a la pregunta