Как изменить набор запросов поля ModelChoiceField перед отправкой формы пользователю в представлении?

У меня такая форма:

class CategoryForm(forms.Form):
    category = forms.ModelChoiceField(queryset=Category.objects.filter(parent=None))

И вид:

def category_select(request, pk):
    if request.method == "POST":
        # ...
    else:
        form = CategoryForm()
        # I want to change category field's queryset here.

        return render(
            request,
            "ads/select-category.html",
            {
                "form": form,
            },
        )

В этом представлении я хочу изменить queryset поле category в form (на основе pk, которое оно получает из url в качестве параметра).

form.fields['category'].queryset = Category.objects.filter(....)

def category_select(request, pk):
    if request.method == "POST":
        # ...
    else:
        form = CategoryForm()

        # Change the queryset of the category field
        form.fields['category'].queryset = Category.objects.filter(....)
        return render(
            request,
            "ads/select-category.html",
            {
                "form": form,
            },
        )
Вернуться на верх