Я пытаюсь создать поле в форме, которая позволяет пользователям выбирать объекты из модели, а также позволяет свободно вводить текст. Я использую django-autocomplete-light. Хотя он отлично подходит для выбора вариантов из модели, я не могу разрешить свободный ввод текста без создания новых объектов перед отправкой формы.
Прежде чем кто-то пометит это как дубликат, я прочитал этот вопрос но он не привел меня к решению.
Вот мои модели.py:
class Person(models.Model):
name = models.CharField(max_length=255, blank=True, null=True)
Мои формы.py:
class NameForm(forms.ModelForm):
name = forms.ModelChoiceField(
queryset=Person.objects.all(),
widget=autocomplete.ModelSelect2(url='myapp:name-autocomplete')
)
class Meta:
model = Person
fields = ['name',]
Мои views.py:
class PersonAutoComplete(autocomplete.Select2QuerySetView):
def get_queryset(self):
qs = Person.objects.all()
if self.q:
qs = qs.filter(name__icontains=self.q)
return qs
И мои urls.py:
path(
'name-autocomplete/',
PersonAutoComplete.as_view(create_field='name'),
name='name-autocomplete',
),