Skip to content

Instantly share code, notes, and snippets.

View akshar-raaj's full-sized avatar
💭
Learning something new everyday!

Akshar Raaj akshar-raaj

💭
Learning something new everyday!
View GitHub Profile
@akshar-raaj
akshar-raaj / views.py
Created July 9, 2019 11:14
DRF Vanialla view with computed field
def get_users(request):
FIELDS = ['first_name', 'last_name', 'last_login', 'phone', 'photo', 'email', 'id']
users = list(User.objects.values(*FIELDS))
for user in users:
groups = list(user.groups.values('id', 'name'))
user['groups'] = groups
user['is_birthday_soon'] = user.is_birthday_in_this_month()
return JsonResponse(users, safe=False)
@akshar-raaj
akshar-raaj / views.py
Created July 9, 2019 11:12
DRF Longer .values()
def get_users(request):
users = list(User.objects.values('first_name', 'last_name', 'email', 'id'))
return JsonResponse(users, safe=False)
@akshar-raaj
akshar-raaj / views.py
Created July 9, 2019 11:11
DRF Vanilla view
def get_users(request):
users = list(User.objects.values(‘first_name’, ‘id’))
return JsonResponse(users, safe=False)
@akshar-raaj
akshar-raaj / views.py
Created July 8, 2019 12:50
View with DynamicSearchFilter
class QuestionsAPIView(generics.ListCreateAPIView):
filter_backends = (DynamicSearchFilter,)
queryset = Question.objects.all()
serializer_class = QuestionSerializer
@akshar-raaj
akshar-raaj / filters.py
Created July 8, 2019 12:44
DynamicSearchFilter
class DynamicSearchFilter(filters.SearchFilter):
def get_search_fields(self, view, request):
return request.GET.getlist('search_fields', [])
@akshar-raaj
akshar-raaj / serializers.py
Created July 8, 2019 07:36
QuestionSerializer with overridden create()
class QuestionSerializer(serializers.ModelSerializer):
choice_set = ChoiceSerializer(many=True)
class Meta:
model = Question
fields = '__all__'
def create(self, validated_data):
choice_validated_data = validated_data.pop('choice_set')
@akshar-raaj
akshar-raaj / serializers.py
Created July 8, 2019 07:35
QuestionSerializer
class QuestionSerializer(serializers.ModelSerializer):
choice_set = ChoiceSerializer(many=True)
class Meta:
model = Question
fields = ('pub_date', 'question_text', 'choice_set')
@akshar-raaj
akshar-raaj / serializers.py
Created July 8, 2019 07:33
ChoiceSerializer
class ChoiceSerializer(serializers.ModelSerializer):
class Meta:
model = Choice
fields = ('choice_text',)
class QuestionsView(APIView):
def post(self, request, *args, **kwargs):
serializer = QuestionSerializer(data=request.data)
if serializer.is_valid():
question = serializer.save()
serializer = QuestionSerializer(question)
return Response(serializer.data, status=status.HTTP_201_CREATED)
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
class QuestionSerializer(serializers.ModelSerializer):
class Meta:
model = Question
fields = ('pub_date', 'question_text', 'choice_set')