Skip to content

Instantly share code, notes, and snippets.

Created January 29, 2015 18:17
Show Gist options
  • Save anonymous/33459ac31f3ea75d78bf to your computer and use it in GitHub Desktop.
Save anonymous/33459ac31f3ea75d78bf to your computer and use it in GitHub Desktop.
class User(AbstractBaseUser, PermissionsMixin):
class Meta:
abstract = False
USERNAME_FIELD = 'email'
account_type = models.IntegerField(choices=ACCOUNT_TYPES, default=2)
first_name = models.CharField(max_length=30)
middle_names = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
@property
def full_name(self):
return self.first_name + ' ' + self.middle_names + ' ' + self.last_name
email = models.EmailField(unique=True)
is_active = models.BooleanField(default=True)
is_staff = models.BooleanField(default=False)
created = models.DateTimeField(auto_now=True)
objects = UserManager()
def get_short_name(self):
if self.is_staff:
return 'Staff'
else:
return self.first_name
def get_username(self):
return self.email
from rest_framework import serializers
from .models import User
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('url', 'first_name', 'email',)
from django.conf.urls import patterns, include, url
from profile.views import *
urlpatterns = patterns('',
url(r'^users/$', UserList.as_view(), name='user-list'),
url(r'^users/(?P<pk>[0-9]+)/$', UserDetail.as_view(), name='user-detail'),
url(r'$', login_required(route_to_profile_page), name='profile'),
)
class UserList(generics.ListAPIView):
queryset = User.objects.all()
serializer_class = UserSerializer
class UserDetail(generics.RetrieveAPIView):
queryset = User.objects.all()
serializer_class = UserSerializer
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment