champs de choix () en tant que jeu de requête?

J'ai besoin de faire un formulaire, qui ont 1 sélectionnez et 1 de saisie de texte. Sélectionnez doit être prise à partir de la base de données.
le modèle ressemble à ceci:

class Province(models.Model):
    name = models.CharField(max_length=30)
    slug = models.SlugField(max_length=30)

    def __unicode__(self):
        return self.name

C'est les lignes sont ajoutées uniquement par admin, mais tous les utilisateurs peuvent voir dans les formulaires.
Je veux faire un ModelForm. J'ai fait quelque chose comme ceci:

class ProvinceForm(ModelForm):
    class Meta:
        CHOICES = Province.objects.all()

        model = Province
        fields = ('name',)
        widgets = {
            'name': Select(choices=CHOICES),
        }

mais ça ne fonctionne pas. La balise select n'est pas affiché en html. Qu'ai-je tort?

Mise à JOUR:

Cette solution fonctionne comme je l'ai aimerions que cela fonctionne:

class ProvinceForm(ModelForm):
    def __init__(self, *args, **kwargs):
        super(ProvinceForm, self).__init__(*args, **kwargs)
        user_provinces = UserProvince.objects.select_related().filter(user__exact=self.instance.id).values_list('province')
        self.fields['name'].queryset = Province.objects.exclude(id__in=user_provinces).only('id', 'name')

    name = forms.ModelChoiceField(queryset=None, empty_label=None)

    class Meta:
        model = Province
        fields = ('name',)

source d'informationauteur robos85