@Pteroz

Python django ошибка валидации формы при выполнении среза queryset. Что не так?

Есть следующий класс формы:

class AddressRegistrationForm(forms.ModelForm):
    class Meta:
        model = AddressRegistration
        fields = ['address']

    def __init__(self, *args, **kwargs):
        super(AddressRegistrationForm, self).__init__(*args, **kwargs)
        search_data = kwargs['initial']['search_data']
        self.fields['address'].queryset = Address.objects.filter(
            street__icontains=search_data['street'],
            city__icontains=search_data['city'],
        )

        if len(self.fields['address'].queryset) > 0:
            self.fields['address'].initial = self.fields['address'].queryset[0]


Выборка fields['address'].queryset осуществляется правильно и таком виде все работает. Но если добавить выполнение среза в строку:

self.fields['address'].queryset = Address.objects.filter(
            street__icontains=search_data['street'],
            city__icontains=search_data['city'],
        )[0:3]


При валидации формы пишет:

Выберите корректный вариант. Вашего варианта нет среди допустимых значений.

Количество элементов среза, переопределение cleaned_data, clean - ничего не работает. POST запрос уходит корректный, т.е. там просто id объекта Address и токен, также как и при работе без среза. Что может быть не так? Django 4.1
  • Вопрос задан
  • 70 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы