Python 如何允许输入是模型中的对象选择,同时也是django表单中的自由文本输入?
我试图在表单中有一个字段,允许用户从模型中选择对象,也允许自由文本输入。我用的是django自动完成灯。虽然它可以很好地从模型中选择选项,但我无法让它在提交表单之前不创建新对象就允许自由文本输入 在有人将此标记为重复之前,我确实读过,但它并没有引导我找到解决方案 这是我的模型.py:Python 如何允许输入是模型中的对象选择,同时也是django表单中的自由文本输入?,python,django,django-autocomplete-light,Python,Django,Django Autocomplete Light,我试图在表单中有一个字段,允许用户从模型中选择对象,也允许自由文本输入。我用的是django自动完成灯。虽然它可以很好地从模型中选择选项,但我无法让它在提交表单之前不创建新对象就允许自由文本输入 在有人将此标记为重复之前,我确实读过,但它并没有引导我找到解决方案 这是我的模型.py: class Person(models.Model): name = models.CharField(max_length=255, blank=True, null=True) My forms.py
class Person(models.Model):
name = models.CharField(max_length=255, blank=True, null=True)
My forms.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',]
My 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
和my url.py:
path(
'name-autocomplete/',
PersonAutoComplete.as_view(create_field='name'),
name='name-autocomplete',
),
您的模板中可能缺少
{{form.media}
,该模板仍然不允许我在字段中输入自由文本。请查看编辑后的答案,很可能是您的问题