Есть следующий класс формы:
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