Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.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自动完成指示灯:使用MultipleChoiceWidget选择逗号_Python_Django_Django Autocomplete Light - Fatal编程技术网

Python django自动完成指示灯:使用MultipleChoiceWidget选择逗号

Python django自动完成指示灯:使用MultipleChoiceWidget选择逗号,python,django,django-autocomplete-light,Python,Django,Django Autocomplete Light,如何使用autocomplete_light.MultipleChoiceWidget在表单中使用键选择 我想通过使用逗号键来选择m2m字段的条目,并通过鼠标单击来选择它。我在中找到了相关的段落,但我不知道如何构建它 型号.py class MyModel(models.Model): tag = models.ManyToManyField(Tag, blank=True, null=True) class Tag(models.Model): name = models.C

如何使用autocomplete_light.MultipleChoiceWidget在表单中使用键选择

我想通过使用逗号键来选择m2m字段的条目,并通过鼠标单击来选择它。我在中找到了相关的段落,但我不知道如何构建它

型号.py

class MyModel(models.Model):
    tag = models.ManyToManyField(Tag, blank=True, null=True)

class Tag(models.Model):
    name = models.CharField(max_length=32, unique=True)
autocomplete_light.register(Tag,
                search_fields=['name'],
                autocomplete_js_attributes={
                                    'placeholder': 'Insert additional tags',
                                            },
                widget_js_attributes = {
                                        'max_values': 3,
                                        }
                )
    tag = forms.ModelMultipleChoiceField(Tag.objects.all(),
    widget=autocomplete_light.MultipleChoiceWidget('TagAutocomplete'),
    required=False)
autocomplete\u light\u registry.py

class MyModel(models.Model):
    tag = models.ManyToManyField(Tag, blank=True, null=True)

class Tag(models.Model):
    name = models.CharField(max_length=32, unique=True)
autocomplete_light.register(Tag,
                search_fields=['name'],
                autocomplete_js_attributes={
                                    'placeholder': 'Insert additional tags',
                                            },
                widget_js_attributes = {
                                        'max_values': 3,
                                        }
                )
    tag = forms.ModelMultipleChoiceField(Tag.objects.all(),
    widget=autocomplete_light.MultipleChoiceWidget('TagAutocomplete'),
    required=False)
forms.py

class MyModel(models.Model):
    tag = models.ManyToManyField(Tag, blank=True, null=True)

class Tag(models.Model):
    name = models.CharField(max_length=32, unique=True)
autocomplete_light.register(Tag,
                search_fields=['name'],
                autocomplete_js_attributes={
                                    'placeholder': 'Insert additional tags',
                                            },
                widget_js_attributes = {
                                        'max_values': 3,
                                        }
                )
    tag = forms.ModelMultipleChoiceField(Tag.objects.all(),
    widget=autocomplete_light.MultipleChoiceWidget('TagAutocomplete'),
    required=False)


自动完成功能运行良好,只是您必须单击所需的标记。我正在寻找一种解决方案,如何使用空格键或逗号等键选择条目。

如果希望条目用逗号字符分隔,则需要使用
自动完成\u light.TextWidget
。但是,它不适用于关系,它只适用于
CharField


multiplechicewidget
维护一个正常的隐藏选择元素。选择需要包含
,其中
值=外键
。如果此选择是由带有逗号分隔的对象标题列表的输入来维护的,则用户可以通过修改以前输入的对象名称来检查它-更不用说在选择时更改对象名称也会检查自动完成。

扩展了我的问题。如果我单击要选择的条目,效果会很好。我只是想用一个键(空格键/逗号)来选择条目,而不是单击。你注意到你可以用Enter键选择条目了吗?为什么这还不够好?不,我没有:)这很好,即使我仍然想自己选择键:)THX键盘导航默认使用enter键、tab键和箭头键。你可能也可以添加自己的快捷方式。我想在开始提问时,我会缺少一个js_属性-非常棒的模块顺便说一句;)