Feature: Support filter by tags and user for Pins

This commit is contained in:
winkidney
2019-02-21 19:03:55 +08:00
parent e120af94cf
commit e1720921fb
2 changed files with 6 additions and 5 deletions

View File

@@ -1,3 +1,4 @@
from django_filters.rest_framework import DjangoFilterBackend
from rest_framework import viewsets, mixins, routers
from rest_framework.filters import SearchFilter, OrderingFilter
from rest_framework.viewsets import GenericViewSet
@@ -24,10 +25,10 @@ class ImageViewSet(mixins.CreateModelMixin, GenericViewSet):
class PinViewSet(viewsets.ModelViewSet):
queryset = Pin.objects.all()
serializer_class = api.PinSerializer
filter_backends = (SearchFilter, OrderingFilter)
search_fields = ('=submitter__username', )
ordering_fields = ('id', )
ordering = ('id', )
filter_backends = (DjangoFilterBackend, SearchFilter, OrderingFilter)
filter_fields = ("submitter__username", 'tags__name', )
ordering_fields = ('-id', )
ordering = ('-id', )
permission_classes = [IsOwnerOrReadOnly("submitter"), ]

View File

@@ -118,7 +118,7 @@ $(window).load(function() {
// Fetch our pins from the api using our current offset
var apiUrl = API_BASE + 'pins/?format=json&ordering=-id&limit=50&offset='+String(offset);
if (tagFilter) apiUrl = apiUrl + '&tag=' + tagFilter;
if (tagFilter) apiUrl = apiUrl + '&tags__name=' + tagFilter;
if (userFilter) apiUrl = apiUrl + '&submitter__username=' + userFilter;
$.get(apiUrl, function(pins_page) {
// Set which items are editable by the current user