backend/django

Django: ModelChoiceField - prepopulate choice field with row from model

seul chan 2018. 5. 3. 21:30

If you want to use choicefield from Model object, you can use ModelChoiceField.

user = forms.ModelChoiceField(queryset=User.objects.filter(is_active=True))

Or you can use ChoiceField with __init__ for change display.

class UserForm(forms.Form):
    user = forms.ChoiceField(choices = [])

    def __init__(self, *args, **kwargs):
        super(UserForm, self).__init__(*args, **kwargs)
        self.fields[user].choices = [(u.phone, u.name) for u in User.objects.all()]