首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使AutoComplete字段工作起来

使AutoComplete字段工作起来
EN

Stack Overflow用户
提问于 2021-05-27 14:17:24
回答 1查看 127关注 0票数 0

我已经成功地在我的Django应用程序中安装了Tag,并且我已经创建了一个标记textfield,尽管我很难让AutoComplete进程正常工作。我一直在引用这些粗俗的指示。

我已经安装了AutoComplete,并在我的Settings.py中包含了相关的JS和CSS库。同时确保'dal''dal_select2'安装在INSTALLED_APPS下。

当我进入我的表单时,我没有收到任何错误,技能标签字段就会出现。尽管没有任何自动完成功能的迹象,但该字段目前只是作为一个常规标记字段而没有自动完成功能。

到目前为止,这是我的代码:

Views.py -(我已经将from dal import autocomplete导入到这个文件中)

代码语言:javascript
复制
class PostCreateView(LoginRequiredMixin, CreateView):
   
    model = Post
    fields = ['content', 'image', 'skills']
    widgets = {
            'skills': autocomplete.ModelSelect2(url='skills-autocomplete')
        }
    template_name = 'sfsrv/post_new.html'
    success_url = '/'
    
    def form_valid(self, form):
        form.instance.author = self.request.user
        return super().form_valid(form)
    
    def get_context_data(self, **kwargs):
        data = super().get_context_data(**kwargs)
        data['tag_line'] = 'Create new post'
        return data

class SkillsAutocomplete(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 Skills.objects.none()

        qs = Skills.objects.all()

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

        return qs

URLs.py (我已经将from sfsrv.views import SkillsAutocomplete导入到这个文件中。

代码语言:javascript
复制
    url(
        'skills-autocomplete/$',
        SkillsAutocomplete.as_view(),
        name='skills-autocomplete',
    ),

Models.py (我已经将tagulous.modelsfrom dal import autocomplete导入到这个文件中。

代码语言:javascript
复制
class Post(models.Model):
    content = models.TextField(max_length=1000)
    date_posted = models.DateTimeField(default=timezone.now)
    image = models.ImageField(default='default.png', upload_to='srv_media')
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    skills = tagulous.models.TagField()
    tags_store = models.TextField(blank=True)

    def __str__(self):
        return self.content[:5]

任何帮助都将是非常感谢的,因为我在Django是个新手!:)

代码语言:javascript
复制
EN

回答 1

Stack Overflow用户

发布于 2022-07-04 09:50:28

检查您是否正在使用引导5并使用jquery代码,这与标记自动完成相冲突,因为bootstrap 5已经放弃了对jquery的支持。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67724041

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档