У меня есть форма ниже в моем 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? Я должен установить начальные значения во время выполнения в представлении.