[英]How to use Django-Filter together with Django-Taggit (to filter posts by tags)?
我想按標簽過濾我的帖子。 如何將它與 Django 過濾器一起使用? 我現在的情況:
#models.py
from taggit.managers import TaggableManager
class Post(models.Model):
title = models.CharField(max_length = 200)
text = models.TextField(null = True, blank = True)
tags = TaggableManager()
def __str__(self):
return self.title
#forms.py
class PostForm(ModelForm):
class Meta:
model = Post
fields = '__all__'
#filter.py
class PostFilter(django_filters.FilterSet):
class Meta:
model = Post
fields = ['title', 'text']
#views.py
def index(request):
posts = Post.objects.all()
tags = Tag.objects.all()
myFilter = PostFilter(request.GET, queryset=posts)
posts = myFilter.qs
context = {'posts':posts, 'myFilter':myFilter, 'tags':tags}
return render(request, 'posts/index.html', context)
有沒有辦法在 forms.py 中包含標簽?
編輯:添加了models.py。 “標簽”是從 taggit 導入的,但不能簡單地添加到 forms.py 中的字段中
您可以通過標簽名稱來完成
class FilterName(django_filters.FilterSet):
class Meta:
model = Modelname
fields = {'tags__name':{'exact'}}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.