簡體   English   中英

如何將 Django-Filter 與 Django-Taggit 一起使用(按標簽過濾帖子)?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM