Several days after Colorado's primary election, Democrats have a nominee for attorney general: former University of Colorado law dean Phil Weiser.

His opponent Joe Salazar conceded over the weekend. Salazar said in a Facebook message that, despite losing, his campaign was a "victory for grassroots power."

Weiser and State Representative Joe Salazar were between 4,000 and 9,000 votes apart for days, while the state waited for late returns from one Western Slope county. A printing error in Montrose forced the county to count ballots by hand. In the end, Weiser held on to a lead of 5,198 votes.

Weiser outraised Salazar by more than $1 million on the way to winning. Weiser, a former Obama administration official, now faces Republican Arapahoe County District Attorney George Brauchler in the general election.

More: Full Results From Colorado 2018 Primary Election