0

我很难将它们集成在一起,当访问“/autocomplete/CartaoAutocomplete/”时,我得到“相关字段的查找无效:​​icontains”。相关代码:

模型.py

class Cartao(models.Model):
    ...
    tags = TaggableManager()

autocomplete_light_registry.py

...
autocomplete_light.register(Cartao,
    search_fields=['tags'],
)

表格.py

...
class CartaoForm(ModelForm):
    tags = TagField(widget=TagWidget('CartaoAutocomplete'))

管理员.py

...
class CartaoAdmin(admin.ModelAdmin):
    form = autocomplete_light.modelform_factory(Cartao)
admin.site.register(Cartao, CartaoAdmin)
4

1 回答 1

1

以下为“Cartao”注册了一个自动完成,这意味着它将建议“Cartao”对象。而您正在尝试做的是一个自动完成来建议tags,它们是Tag实例。而不是这个:

# autocomplete_light_registry.py
autocomplete_light.register(Cartao,
    search_fields=['tags'],
)

# forms.py
class CartaoForm(ModelForm):
    tags = TagField(widget=TagWidget('CartaoAutocomplete'))

你应该有:

# autocomplete_light_registry.py
from taggit.models import Tag
autocomplete_light.register(Tag)

# forms.py
class CartaoForm(ModelForm):
    tags = TagField(widget=TagWidget('TagAutocomplete'))

让我知道这是否正确,然后我将更新文档。

于 2013-06-21T15:13:05.640 回答