0

我能够自动完成工作。

django 版本:1.8

但我也想动态创建选择,这些选择应该保存在Tag模型中。

据我了解,remote.js是要使用的。
因此,我将以下代码段添加到autocomplete_light_registry.py
'data-bootstrap':'rest_modal'
'autocomplete' : 'remote'

下面的remote.js片段也被解雇了

$('body').on('initialize', '.autocomplete-light-widget[data-  bootstrap=rest_model]', function() {
    $(this).yourlabsWidget(yourlabs.RemoteAutocompleteWidget);
});


但是,仍然没有调用getValue函数remote.js

模型.py

class Document(models.Model):
    tags = models.ManyToManyField(Tag)

class Tag(models.Model):
    name = models.CharField(max_length=200, unique=True)
    slug = models.SlugField(unique=True)
    def __str__(self):
        return self.name

autocomplete_light_registry.py

autocomplete_light.register(Tag,
    search_fields=['name'],

    attrs={
       'autocomplete' : 'remote',
       'placeholder': 'Please enter related tags?',
        'data-autocomplete-minimum-characters': 1,
    },
    widget_attrs={
        'data-bootstrap':'rest_modal',
        'data-widget-maximum-values': 4,
        'class': 'modern-style',
    },
)

表格.py:

class DocUploadForm(autocomplete_light.ModelForm):
    class Meta:
        model = Document
        # widgets = {'tags' : autocomplete_light.MultipleChoiceWidget('TagAutocomplete')}
        autocomplete_fields = ('tags',)
        exclude = ['organization','private_user']

我在这里想念什么?

请询问,如果问题或代码中需要更清晰

提前致谢。

4

1 回答 1

0

此处不需要 Remote.js。

  1. 在Autocomplete.post()中实现对象创建
  2. 使用自己的JS来触发它

示例应用程序:https ://github.com/yourlabs/django-autocomplete-light/tree/master/autocomplete_light/example_apps/create_choice_on_the_fly

现场示例:http ://dal-yourlabs.rhcloud.com/admin/create_choice_on_the_fly/

于 2016-01-02T02:57:59.940 回答