File tree Expand file tree Collapse file tree 3 files changed +30
-2
lines changed Expand file tree Collapse file tree 3 files changed +30
-2
lines changed Original file line number Diff line number Diff line change @@ -47,3 +47,19 @@ class Meta:
47
47
class JSONAPIMeta :
48
48
included_resources = ['user' , 'tags' , 'sources' ]
49
49
50
+ class TagGetSerializer (serializers .ModelSerializer ):
51
+ class Meta :
52
+ model = Tag
53
+ fields = ('name' , 'challenges' )
54
+
55
+ challenges = ResourceRelatedField (
56
+ queryset = Challenge .objects ,
57
+ many = True ,
58
+ )
59
+
60
+ included_serializers = {
61
+ 'challenges' : ChallengeSerializer ,
62
+ }
63
+
64
+ class JSONAPIMeta :
65
+ included_resources = ['challenges' ,]
Original file line number Diff line number Diff line change 4
4
5
5
router = routers .DefaultRouter (trailing_slash = False )
6
6
router .register (r'challenges' , views .ChallengesViewSet , base_name = 'Challenges' )
7
+ router .register (r'tags' , views .TagsViewSet , base_name = 'Tags' )
7
8
8
9
urlpatterns = [
9
10
url (r'^' , include (router .urls )),
Original file line number Diff line number Diff line change 1
1
from rest_framework import viewsets
2
- from .models import Challenge
3
- from .serializers import ChallengeSerializer
2
+ from .models import Challenge , Tag
3
+ from .serializers import ChallengeSerializer , TagGetSerializer
4
4
5
5
class ChallengesViewSet (viewsets .ModelViewSet ):
6
6
@@ -12,3 +12,14 @@ def get_queryset(self):
12
12
return queryset
13
13
14
14
serializer_class = ChallengeSerializer
15
+
16
+ class TagsViewSet (viewsets .ModelViewSet ):
17
+
18
+ def get_queryset (self ):
19
+ queryset = Tag .objects .all ()
20
+ pk = self .request .query_params .get ('name' , None )
21
+ if pk is not None :
22
+ queryset = queryset .filter (name = name )
23
+ return queryset
24
+
25
+ serializer_class = TagGetSerializer
You can’t perform that action at this time.
0 commit comments