Update registration for api auth

This commit is contained in:
michigg 2018-03-28 15:18:04 +02:00
parent 44ffe4577f
commit e2e2e0b0bf
7 changed files with 131 additions and 3 deletions

View File

@ -0,0 +1,53 @@
from rest_framework import serializers
from django.contrib.auth.models import User
from apps.food.models import UserFoodRating, UserFoodImage, UserFoodComment, SingleFood, FoodImage
class FoodImageSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = FoodImage
fields = ('image', 'thumb')
class UserFoodImageSerializer(serializers.HyperlinkedModelSerializer):
image = FoodImageSerializer(many=False, read_only=True)
class Meta:
model = UserFoodImage
fields = ('id', 'image')
class SingleFoodSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = SingleFood
fields = ('id', 'name')
class UserFoodImagesSerializer(serializers.HyperlinkedModelSerializer):
food = SingleFoodSerializer(many=False, read_only=True)
class Meta:
model = UserFoodImage
fields = ('id', 'food', 'image_image', 'image_thumb')
class UserRatingSerializer(serializers.HyperlinkedModelSerializer):
food = SingleFoodSerializer(many=False, read_only=True)
class Meta:
model = UserFoodRating
fields = ('id', 'food', 'rating')
class UserCommentsSerializer(serializers.HyperlinkedModelSerializer):
food = SingleFoodSerializer(many=False, read_only=True)
class Meta:
model = UserFoodComment
fields = ('id', 'food', 'comment')
class UserInformationSerializer(serializers.HyperlinkedModelSerializer):
class Meta:
model = User
fields = ('id', 'username', 'first_name', 'last_name', 'email', 'date_joined', 'last_login')

View File

@ -0,0 +1,26 @@
"""ofu_app URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/1.11/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: url(r'^$', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.conf.urls import url, include
2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls'))
"""
from django.conf.urls import url
from apps.registration.api import views as api_views
from apps.food.models import Menu
urlpatterns = [
# API Version 1.1
url(r'^account/$', api_views.UserInformations.as_view(), name='api-v1_1-user-information'),
url(r'^account/food/rating/$', api_views.UserRatings.as_view(), name='api-v1_1-user-rating'),
url(r'^account/food/pic/$', api_views.UserImages.as_view(), name='api-v1_1-user-image'),
url(r'^account/food/comment/$', api_views.UserComments.as_view(), name='api-v1_1-user-comment'),
]

View File

@ -0,0 +1,44 @@
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from apps.food.models import UserFoodComment, UserFoodImage, UserFoodRating
from apps.registration.api.serializers import UserInformationSerializer, UserRatingSerializer, UserFoodImageSerializer, \
UserCommentsSerializer
from rest_framework import generics
from rest_framework.decorators import permission_classes
from rest_framework.permissions import IsAuthenticated
@permission_classes((IsAuthenticated,))
class UserInformations(generics.ListAPIView):
serializer_class = UserInformationSerializer
def get_queryset(self):
return [self.request.user]
@permission_classes((IsAuthenticated,))
class UserRatings(generics.ListAPIView):
serializer_class = UserRatingSerializer
def get_queryset(self):
user = self.request.user
return UserFoodRating.objects.filter(user=user).order_by('food__name')
@permission_classes((IsAuthenticated,))
class UserImages(generics.ListAPIView):
serializer_class = UserFoodImageSerializer
def get_queryset(self):
user = self.request.user
return UserFoodImage.objects.filter(user=user).order_by('food__name')
@permission_classes((IsAuthenticated,))
class UserComments(generics.ListAPIView):
serializer_class = UserCommentsSerializer
def get_queryset(self):
user = self.request.user
return UserFoodComment.objects.filter(user=user).order_by('food__name')

View File

@ -8,4 +8,5 @@ urlpatterns = [
url(r'^account_activation_sent/$', core_views.account_activation_sent, name='account_activation_sent'),
url(r'^activate/(?P<uidb64>[0-9A-Za-z_\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$',
core_views.activate, name='activate'),
url(r'^signup/$', core_views.signup, name='signup'),
]

View File

@ -11,7 +11,7 @@ from django.utils.encoding import force_text
from django.utils.http import urlsafe_base64_decode
from django.core.mail import send_mail
from django.shortcuts import HttpResponse, redirect
from apps.food.models import UserRating, UserFoodImage
from apps.food.models import UserFoodRating, UserFoodImage
def signup(request):
@ -22,7 +22,7 @@ def signup(request):
user.is_active = False
user.save()
current_site = request.META['HTTP_HOST']
subject = 'Activate Your MySite Account'
subject = 'Activate Your BaStA Account'
message = render_to_string('registration/account_activation_email.jinja', {
'user': user,
'domain': current_site,
@ -64,7 +64,7 @@ def account_view(request):
if request.user.is_authenticated:
user = request.user
food_ratings = UserRating.objects.filter(user=user).order_by('food__name')
food_ratings = UserFoodRating.objects.filter(user=user).order_by('food__name')
food_images = UserFoodImage.objects.filter(user=user.id)
print(food_images)

View File

@ -1,10 +1,14 @@
django==2.0.1
django-jinja==2.4.1
django-rest-framework==0.1.0
#django-rest-auth==0.9.3
#djangorestframework-jwt==1.11.0
#django-allauth==0.35.0
django-analytical==2.4.0
requests==2.18.4
beautifulsoup4==4.6.0
#psycopg2==2.7.3.2
xmltodict==0.11.0
coverage==3.6
django-cors-headers