-
Notifications
You must be signed in to change notification settings - Fork 0
/
django_cache
92 lines (69 loc) · 3.91 KB
/
django_cache
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# ------------------------------------------------------------------------------------------------------------------------------------------
# ------------------------------------------------------------------------------------------------------------------------------------------
# ------------------------------------------------------------------------------------------------------------------------------------------
# ------------------------------------------------------------------------------------------------------------------------------------------
# ------------------------------------------------------------------------------------------------------------------------------------------
from .models import Candidate
from rest_framework import viewsets, permissions, response
from .serializers import CandidateSerializer, CandidatInfoSerializer
from rest_framework.decorators import action
# мб еще импорты по сералайзеру должны быть и другие классы из сериалайзера
class CandidateViewSet(viewsets.ModelViewSet):
"""
ViewSet для отображения данных по кандидатам.
Кандидат - чтение (модели).
list_of_candidats - чтение всех кандидатов на данных выборах.
user_list = CandidateViewSet.as_view({'get': 'list_of_candidats'})
user_detail = CandidateViewSet.as_view({'get': '***'})
"""
def list_of_candidats(self, request):
queryset = Candidate.objects.all()
permission_classes = [
permissions.AllowAny
]
# что за переменная класса CandidateSerializer?
# здесь в апи или в сериалайзере прописывать какие поля Модели нужны для этого метода -
# наверно в сериалайзере
# например: для list_of_candidats нужно только поле "name"
# нужно ли использовать атрибут ф-ции request?
serializer_class = CandidateSerializer(queryset, many=True)
return response.Response(serializer_class.data)
'''
GET /protocol - получить все протоколы, к которым пользователь имеет доступ
GET /protocol/{id} - получить информацию о протоколе по его id. Нужно проверять,
есть ли у пользователя на это права!
GET /account/permissions - получить роль пользувателя и доступные уики
GET /candidate - получить список кандидатов
'''
'''
пример
www.django-rest-framework.org/api-guide/filtering
url('^purchases/(?P.+)/$', PurchaseList.as_view()),
class PurchaseList(generics.ListAPIView):
serializer_class = PurchaseSerializer
def get_queryset(self):
"""
This view should return a list of all the purchases for
the user as determined by the username portion of the URL.
"""
username = self.kwargs['username']
return Purchase.objects.filter(purchaser__username=username)
'''
def view_candidate_info(self, request):
queryset = Candidate.objects.all()
# надо разобраться что такое permission_classes
# permission_classes = [
# permissions.AllowAny
# ]
serializer_class = CandidatInfoSerializer(queryset, many=True)
#
# Article - model
queryset= Article.objects.all().filter(category=14).order_by('-created')[:10]
return response.Response(serializer_class.data)
# examples
# class UserViewSet(viewsets.ModelViewSet):
# """
# A viewset for viewing and editing user instances.
# """
# serializer_class = UserSerializer
# queryset = User.objects.all()