  For any simple-root constacyclic code $\mathcal{C}$ over a finite field
$\mathbb{F}_q$, as far as we know, the group $\mathcal{G}$ generated by the
multiplier, the constacyclic shift and the scalar multiplications is the
largest subgroup of the automorphism group ${\rm Aut}(\mathcal{C})$ of
$\mathcal{C}$. In this paper, by calculating the number of $\mathcal{G}$-orbits
of $\mathcal{C}\backslash\{\bf 0\}$, we give an explicit upper bound on the
number of non-zero weights of $\mathcal{C}$ and present a necessary and
sufficient condition for $\mathcal{C}$ to meet the upper bound. Some examples
in this paper show that our upper bound is tight and better than the upper
bounds in [Zhang and Cao, FFA, 2024]. In particular, our main results provide a
new method to construct few-weight constacyclic codes. Furthermore, for the
constacyclic code $\mathcal{C}$ belonging to two special types, we obtain a
smaller upper bound on the number of non-zero weights of $\mathcal{C}$ by
substituting $\mathcal{G}$ with a larger subgroup of ${\rm Aut}(\mathcal{C})$.
The results derived in this paper generalize the main results in [Chen, Fu and
Liu, IEEE-TIT, 2024]}.
