Django - заполнить MultipleChoiceField с помощью request.user.somechoice_set.all () - PullRequest
0 голосов
/ 29 сентября 2010

Есть ли более эффективный или более чистый способ сделать следующее?

class SpamForm(ModelForm):
    some_choices = fields.MultipleChoiceField()

    def __init__(self, *args, **kwargs):
        super(SpamForm, self).__init__(*args, **kwargs)
        self.fields['some_choices'].choices = [[choice.pk, choice.description] for choice in self.instance.user.somechoice_set.all()]

    class Meta:
        model = Spam

Это необходимо для заполнения новой формы вариантами, относящимися к текущей request.user (которая установлена ​​в экземпляреэто перешло в форму).Есть ли лучший способ?

1 Ответ

0 голосов
/ 29 сентября 2010

Используйте ModelMultipleChoiceField в форме и установите queryset в __init__().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...