def geocode_user(user):
    formats = (
        '%(housenumber)s,%(street)s,%(city)s,%(country)s',
        '%(housenumber)s,%(street)s,%(country)s',
        '%(street)s,%(city)s,%(country)s',
        '%(street)s,%(country)s',
    )
    
    address = get_address_parts(user)
    
    lat = lng = None
    
    for f in formats:
        lat, lng = geocode(f % address)
        
        if lat and lng:
            break
            
    return lat,lng