Django, ModelChoiceField () и начальное значение с неработающим набором форм - PullRequest
0 голосов
/ 12 марта 2020

У меня есть форма ниже в моем forms.py. Я устанавливаю self.fields ['start'] в ModelChoiceField с queryset = Flow.objects.all ().

    class GroupForm(ModelForm):
            class meta:
                model = Group
                fields=['conditionn', 'start']

            def __init__(self, *args, **kwargs):
                super(GroupForm, self).__init__(*args, **kwargs)
                self.helper = FormHelper()
                self.fields['condition'] = forms.CharField(label='Post Condition',
                                                           widget=forms.TextInput(
                                                               attrs={'placeholder': 'The system displays the "Home" button'}))
                #to check what is in the initial
                initial = kwargs.get('initial', {})
                print("wow",initial)
                self.fields['start'] = forms.ModelChoiceField(label='Success or Abort', widget=forms.Select,
                                                       queryset=Flow.objects.all())

GroupInlineFormSet = inlineformset_factory(ParentModel, BoundedFlowGroup, form=BoundedFlowGroupForm)

На мой взгляд, у меня есть

class  UpdateGroup(Updateview):
...
         def get_context_data(self, **kwargs):
        print(self.object)
        context = super(UseCaseUpdateView, self).get_context_data(**kwargs)
        if self.request.POST:
            ....
        else:

            context['Another_form'] = AnotherFormSet(instance=self.object, prefix='group')
            groupQuerySet=context['Another_form'].instance.group_set.all()
            flowQuerySet=basicGroupQuerySet[0].flow_set.all()
            context['boundedGroupNested_form'] = BoundedGroupNestedFormSet(initial=[{'start':flowQuerySet}], instance=self.object,
                                                                           prefix='boundedFlowGroup')
        return context
....

Сейчас в представлении я пытаюсь установить начальные начальные значения с initial = [{'start': flowQuerySet}]. Когда я распечатываю flowQuerySet, я получаю правильные значения, которые мне понадобятся для начального поля. Однако, когда я просматриваю свой шаблон рендеринга, я вижу все экземпляры Flow, а не экземпляры из flowQuerySet.

Итак, если 1,2,3,4,5,6 Flows и flowQuerySet имеет только 5, 2,1 - я хочу только 5,2,1 в качестве опции выбора в ModelChoiceField запуска, но я все еще получаю 1,2,3,4,5,6.

Как сделать Я устанавливаю экземпляры модели для определенного c ModelChoiceField? Я должен установить начальные значения во время выполнения в представлении.

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