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: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 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: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 / serializers.py
Created July 9, 2019 11:15
DRF Vanilla view serializer
import json
class UserSerializer():
model = User
fields = ['first_name', 'last_name']
def get_queryset(self):
return self.model.objects.all()
@property
def data(self):
users = self.get_queryset()
for user in users:
@akshar-raaj
akshar-raaj / views.py
Created July 9, 2019 11:16
DRF Vanilla view using serializer
def get_users(request):
users = UserSerializer()
return JsonResponse(users.data)
@akshar-raaj
akshar-raaj / views.py
Created July 9, 2019 11:19
DRF users with groups
def get_users(request):
users = list(User.objects.values(‘first_name’, 'last_name', 'email', ‘id’))
for user in users:
groups = list(user.groups.values('id', 'name'))
user['groups'] = groups
return JsonResponse(users, safe=False)
@akshar-raaj
akshar-raaj / views.py
Created July 9, 2019 14:29
DRF Create user
def create_user(request):
user_dict = json.loads(request.body)
# Validate the POSTed data
try:
user = User.objects.create(**user_dict)
except Exception as e:
# Handle exception and gracefully return a proper response
pass
return JsonResponse({'first_name': user.first_name, 'last_name': user.last_name}, safe=False)
@akshar-raaj
akshar-raaj / serializers.py
Created July 22, 2019 19:16
Effective serializer for read
from rest_framework import serializers
from django.contrib.auth.models import User
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('username', 'email', 'first_name', 'last_name')
class UserSerializer(serializers.ModelSerializer):
user_name = serializers.CharField(source='username')
class Meta:
model = User
fields = ('user_name', 'email', 'first_name', 'last_name')
class UserSerializer(serializers.ModelSerializer):
user_name = serializers.CharField(source='username')
full_name = serializers.CharField(source='get_full_name')
class Meta:
model = User
fields = ('user_name', 'email', 'first_name', 'last_name', 'full_name')