Guest User

Untitled

a guest
Mar 5th, 2018
42
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.77 KB | None | 0 0
  1. #Models
  2. from django.db import models
  3. import uuid
  4.  
  5. # User Model.
  6. class User(models.Model):
  7. name=models.CharField(max_length=255,default=0)
  8. username=models.CharField(max_length=140,default=0)
  9. email=models.EmailField(default=0)
  10. password=models.CharField(max_length=30, default=0)
  11.  
  12. #Model for generating session token
  13. class SessionToken(models.Model):
  14. user=models.ForeignKey(User)
  15. session_token = models.CharField(max_length=255)
  16. created_on = models.DateTimeField(auto_now_add=True)
  17. is_valid = models.BooleanField(default=True)
  18.  
  19. def create_token(self):
  20. self.session_token = uuid.uuid4()
  21. # Model for creating todo list
  22. class TodoModel(models.Model):
  23. user=models.ForeignKey(User)
  24. dailytask=models.CharField(max_length=500)
  25. todaytask=models.CharField(max_length=500)
  26. deadline=models.CharField(max_length=5)
  27. completed = models.BooleanField(default=False)
  28. description = models.TextField()
  29. #views
  30.  
  31. from django.shortcuts import render
  32. from rest_framework import status
  33. from rest_framework.decorators import api_view
  34. from rest_framework.response import Response
  35.  
  36. from Todoapp.models import User,SessionToken,TodoModel
  37. from Todoapp.serializers import UserSerializer, SessionSerializer, TodoSerializer
  38. #from rest_framework import authentiaction
  39.  
  40. #Method for registering users
  41. #Signup_viewHTTP_400_BAD_REQUEST)
  42.  
  43. #Method for logging in
  44. #Login view
  45. @api_view(['POST'])
  46. def login_view(request):
  47. @api_view(['POST'])
  48. def signup_view(request):
  49. serialized=UserSerializer(data=request.data)
  50. if serialized.is_valid():
  51. serialized.save()
  52. return Response(serialized.data,status=status.HTTP_201_created)
  53. else:
  54. return Response(serialized._errors, status=status.
  55. serialized=SessionSerializer(data=request.POST)
  56. if serialized.is_valid():
  57. serialized.save()
  58. return Response(serialized.data,status=status.HTTP_201_created)
  59. else:
  60. return Response(serialized._errors,status=status.HTTP_400_BAD_REQUEST)
  61. #Task view
  62. @api_view(['GET','POST'])
  63. def todo_view(request):
  64. if request.method=="GET":
  65. tasks=TodoModel.objects.all()
  66. serializer=TodoSerializer(tasks)
  67. return Response(serializer.data)
  68. elif request.method=="POST":
  69. serializer =TodoSerializer(data=request.data)
  70. if serializer.is_valid():
  71. serializer.save()
  72. return Response(serializer.data,status=status.HTTP_201_created)
  73. else:
  74. return Response(serialized._errors,status=status.HTTP_400_BAD_REQUEST)
  75.  
  76. #Serailizers
  77. #serailizable databases for api
  78. from rest_framework import serializers
  79.  
  80. from Todoapp.models import User,SessionToken,TodoModel
  81. #Serailizable user model
  82. class UserSerializer(serializers.ModelSerializer):
  83. class Meta:
  84. model=User
  85. fields=('name','username','email','password')
  86. '''
  87. def create(self, validated_data):
  88. print validated_data
  89. user=User.objects.create(name=name,username=username)
  90.  
  91. password=User.make_password(validated_data['password'])
  92. user.save()
  93. return user
  94. '''
  95. #SErializable login model
  96. class SessionSerializer(serializers.ModelSerializer):
  97. class Meta:
  98. model=SessionToken
  99. fields=('username','password')
  100. def create(self,validated_data):
  101. user=User.objects.get(username=validated_data['username'],password=validated_data['password'])
  102. if check_password(password,user.password) :
  103. token=SessionToken(user)
  104. token.save()
  105. return token
  106.  
  107. #serializable todo model
  108. class TodoSerializer(serializers.Serializer):
  109. class meta:
  110. model= TodoModel
  111. fields=('dailytask','todaytask','completed','description')
Add Comment
Please, Sign In to add comment