Django: ModelMultipleChoiceField doesn't select initial choices

前端 未结 4 1681
孤独总比滥情好
孤独总比滥情好 2020-12-05 17:44

ModelMultipleChoiceField doesn\'t select initial choices and I can\'t make the following fix (link below) work in my example:

http://code.djangoproject.com/ticket/52

4条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2020-12-05 18:28

    I'm replying for 1)

    1. How can I make ModelMultipleChoiceField take those "initial" values?

    This could be done in your Action_Form __init__ method using ModelMultipleChoiceField initial attribute.

    As it says in the Django source code (db/models/fields/related.py) in def formfield(self, **kwargs):

            # If initial is passed in, it's a list of related objects, but the
            # MultipleChoiceField takes a list of IDs.
    

    So you need to give it a list of IDs:

    class Action_Form(forms.ModelForm):
        def __init__(self, *args, **kwargs):
            super(Action_Form, self).__init__(*args, **kwargs)
            self.fields['from_company'].initial = [c.pk for c in Contact.object.filter()]
    

提交回复
热议问题