Django Taggit - 自动完成灯(配置指南)

时间:2021-06-04 19:46:06

标签: python django django-autocomplete-light django-taggit

我已经完全启动并运行了 Taggit,并且想要配置 Autocomplete Light 以便在用户在我的应用程序中选择他们喜欢的标签时启用 Select2 下拉菜单。

我已经安装了 DALdal_select2dal_queryset_sequence 库。

我已经创建了一个表单,我的用户可以在其中简单地上传照片、添加内容和 TagField。虽然,TagField 目前作为普通文本字段运行(但标签确实成功保存到我的 Taggit 应用程序中) - 我只是在努力让 Select2 下拉菜单正常工作。

这是我的设置(就已安装的应用程序而言:

设置.py

INSTALLED_APPS = [
    'core.apps.AConfig',
    'users.apps.UConfig',
    'crispy_forms',
    'emoji_picker',
    'taggit',
    'dal',
    'dal_select2',
    'dal_queryset_sequence',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sites',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rest_framework',
]

在我的 Views.py 中

from dal import autocomplete

class TagAutocomplete(autocomplete.Select2QuerySetView):
    def get_queryset(self):
        # Don't forget to filter out results depending on the visitor !
        if not self.request.user.is_authenticated():
            return Tag.objects.none()

        qs = Tag.objects.all()

        if self.q:
            qs = qs.filter(name__istartswith=self.q)

        return qs

网址.py

from core.views import TagAutocomplete

urlpatterns = [
    url(
        r'^tag-autocomplete/$',
        TagAutocomplete.as_view(),
        name='tag-autocomplete',
    ),
]

Forms.py

import dal
from dal import autocomplete
from taggit.models import Tag

    class PostForm(autocomplete.FutureModelForm):
        tags = forms.ModelChoiceField(
        queryset=Tag.objects.all()
    )

    class Meta:
        model = Post
        fields = ('__all__')
        widgets = {
            'tags': autocomplete.TaggitSelect2(
                'tag-autocomplete'
            )
        }

我已经查看了 Django Autocomplete Light 的文档,但我不太确定从我已有的代码中去哪里。

任何指导将不胜感激!

谢谢! :-)

0 个答案:

没有答案