Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #Models
- from django.db import models
- import uuid
- # User Model.
- class User(models.Model):
- name=models.CharField(max_length=255,default=0)
- username=models.CharField(max_length=140,default=0)
- email=models.EmailField(default=0)
- password=models.CharField(max_length=30, default=0)
- #Model for generating session token
- class SessionToken(models.Model):
- user=models.ForeignKey(User)
- session_token = models.CharField(max_length=255)
- created_on = models.DateTimeField(auto_now_add=True)
- is_valid = models.BooleanField(default=True)
- def create_token(self):
- self.session_token = uuid.uuid4()
- # Model for creating todo list
- class TodoModel(models.Model):
- user=models.ForeignKey(User)
- dailytask=models.CharField(max_length=500)
- todaytask=models.CharField(max_length=500)
- deadline=models.CharField(max_length=5)
- completed = models.BooleanField(default=False)
- description = models.TextField()
- #views
- from django.shortcuts import render
- from rest_framework import status
- from rest_framework.decorators import api_view
- from rest_framework.response import Response
- from Todoapp.models import User,SessionToken,TodoModel
- from Todoapp.serializers import UserSerializer, SessionSerializer, TodoSerializer
- #from rest_framework import authentiaction
- #Method for registering users
- #Signup_viewHTTP_400_BAD_REQUEST)
- #Method for logging in
- #Login view
- @api_view(['POST'])
- def login_view(request):
- @api_view(['POST'])
- def signup_view(request):
- serialized=UserSerializer(data=request.data)
- if serialized.is_valid():
- serialized.save()
- return Response(serialized.data,status=status.HTTP_201_created)
- else:
- return Response(serialized._errors, status=status.
- serialized=SessionSerializer(data=request.POST)
- if serialized.is_valid():
- serialized.save()
- return Response(serialized.data,status=status.HTTP_201_created)
- else:
- return Response(serialized._errors,status=status.HTTP_400_BAD_REQUEST)
- #Task view
- @api_view(['GET','POST'])
- def todo_view(request):
- if request.method=="GET":
- tasks=TodoModel.objects.all()
- serializer=TodoSerializer(tasks)
- return Response(serializer.data)
- elif request.method=="POST":
- serializer =TodoSerializer(data=request.data)
- if serializer.is_valid():
- serializer.save()
- return Response(serializer.data,status=status.HTTP_201_created)
- else:
- return Response(serialized._errors,status=status.HTTP_400_BAD_REQUEST)
- #Serailizers
- #serailizable databases for api
- from rest_framework import serializers
- from Todoapp.models import User,SessionToken,TodoModel
- #Serailizable user model
- class UserSerializer(serializers.ModelSerializer):
- class Meta:
- model=User
- fields=('name','username','email','password')
- '''
- def create(self, validated_data):
- print validated_data
- user=User.objects.create(name=name,username=username)
- password=User.make_password(validated_data['password'])
- user.save()
- return user
- '''
- #SErializable login model
- class SessionSerializer(serializers.ModelSerializer):
- class Meta:
- model=SessionToken
- fields=('username','password')
- def create(self,validated_data):
- user=User.objects.get(username=validated_data['username'],password=validated_data['password'])
- if check_password(password,user.password) :
- token=SessionToken(user)
- token.save()
- return token
- #serializable todo model
- class TodoSerializer(serializers.Serializer):
- class meta:
- model= TodoModel
- fields=('dailytask','todaytask','completed','description')
Add Comment
Please, Sign In to add comment