我已经成功地在我的Django应用程序中安装了Tag,并且我已经创建了一个标记textfield,尽管我很难让AutoComplete进程正常工作。我一直在引用这些粗俗的指示。
我已经安装了AutoComplete,并在我的Settings.py中包含了相关的JS和CSS库。同时确保'dal'和'dal_select2'安装在INSTALLED_APPS下。
当我进入我的表单时,我没有收到任何错误,技能标签字段就会出现。尽管没有任何自动完成功能的迹象,但该字段目前只是作为一个常规标记字段而没有自动完成功能。
到目前为止,这是我的代码:
Views.py -(我已经将from dal import autocomplete导入到这个文件中)
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 qsURLs.py (我已经将from sfsrv.views import SkillsAutocomplete导入到这个文件中。
url(
'skills-autocomplete/$',
SkillsAutocomplete.as_view(),
name='skills-autocomplete',
),Models.py (我已经将tagulous.models和from dal import autocomplete导入到这个文件中。
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是个新手!:)
发布于 2022-07-04 09:50:28
检查您是否正在使用引导5并使用jquery代码,这与标记自动完成相冲突,因为bootstrap 5已经放弃了对jquery的支持。
https://stackoverflow.com/questions/67724041
复制相似问题