Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何允许输入是模型中的对象选择,同时也是django表单中的自由文本输入?_Python_Django_Django Autocomplete Light - Fatal编程技术网

Python 如何允许输入是模型中的对象选择,同时也是django表单中的自由文本输入?

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

我试图在表单中有一个字段,允许用户从模型中选择对象,也允许自由文本输入。我用的是django自动完成灯。虽然它可以很好地从模型中选择选项,但我无法让它在提交表单之前不创建新对象就允许自由文本输入

在有人将此标记为重复之前,我确实读过,但它并没有引导我找到解决方案

这是我的模型.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}
,该模板仍然不允许我在字段中输入自由文本。请查看编辑后的答案,很可能是您的问题