Как передать аргумент из предыдущего представления в форму? - PullRequest
0 голосов
/ 16 апреля 2020

Я пытаюсь передать аргумент "test" из этого представления в форму:

class ListCreateFormView(CreateView):
    template_name = 'armybuilder_list_create.html'
    model = List
    form_class = CreateListForm
    def form_valid(self, form):
        form.instance.author = self.request.user
        self.test = Faction.objects.get(title="Blood Angels")
        return super().form_valid(form)
    def get_success_url(self):
        return reverse_lazy('add_unit_to_list', kwargs={'pk': self.object.pk, 'test': self.test.id})

В это представление и форму:

class AddUnitsToListFormView(LoginRequiredMixin,CreateView):
    model = SoldierToList
    form_class = SoldierToListForm
    template_name = 'armybuilder_add_unit_to_list.html'

    def form_valid(self, form):
        form.instance.author = self.request.user
        form.instance.list_id = self.kwargs['pk']
        return super().form_valid(form)

class SoldierToListForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        # factions_obj = Faction.objects.get(pk=my_test)
        self.fields['soldier'].queryset = Soldier.objects.filter(factions=4)
    class Meta:
        model = SoldierToList
        fields = ('soldier',)

Мои URL:

urlpatterns = [
    path('list/create', ListCreateFormView.as_view(), name='create_list'),
    path('list/own/<int:pk>/<int:test>/addunit', AddUnitsToListFormView.as_view(), name='add_unit_to_list'),
]

Я жестко кодирую значение 4 в моей форме, но я хотел бы использовать тест аргументов, который я определил в предыдущем представлении ListCreateFormView , подскажите, пожалуйста, как это сделать?

Спасибо

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