from users.models import UserProfile
from rest_framework import exceptions
class Authtication(object):
def authenticate(self,request):
# 验证是否已经登录,函数名必须为:authenticate
token = request._request.POST.get('token')
# print(token)
token_obj=UserProfile.objects.filter(token=token).first()
if not token_obj:
raise exceptions.AuthenticationFailed('用户认证失败。')
#在rest_framework内部会将以下两个元素赋值到request,以供后续使用
return (token_obj.nickName,token_obj)
def authenticate_header(self,request):
#这个函数可以没内容,但是必须要有
pass
from django.shortcuts import render,HttpResponse
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework.renderers import JSONRenderer,BrowsableAPIRenderer
from .serializers import CategoryModelSerializer,GoodModelSerializer,PrizeModelSerializer,ImagesModelSerializer
from .models import Category,Good,Images,Prize
from utils.auth import Authtication
from users.models import UserProfile,Area
# Create your views here.
#……
class CreateAdOrShop(APIView):
"""
创建ad或者shop
"""
renderer_classes = [JSONRenderer] # 渲染器
authentication_classes = [Authtication,]
def post(self,request):
# print('微信名:',request.user)
token=request.POST.get('token')
tabcur=request.POST.get('tabcur')
tabcur = int(tabcur) + 1
title=request.POST.get('title')
desc=request.POST.get('desc')
mobile=request.POST.get('mobile')
address=request.POST.get('address')
c1=request.POST.get('c1')
c2=request.POST.get('c2')
area3=request.POST.get('area')
# print(token,tabcur,title,desc,mobile,address,c1,c2,area3)
if token and tabcur and title and desc and mobile and address and c1 and c2 and area3:
user=UserProfile.objects.filter(token=token).first()
cat1=Category.objects.filter(name=c1).first()
cat2=Category.objects.filter(name=c2,parent_category=cat1).first()
area=Area.objects.filter(name=area3).first()
new_good=Good()
new_good.title=title
new_good.desc=desc
new_good.mobile=mobile
new_good.address=address
new_good.user=user
new_good.category=cat2
new_good.area=area
new_good.type=tabcur
new_good.save()
re=GoodModelSerializer(new_good)
return Response(re.data)
else:
return HttpResponse(404)
class UpLoadImg(APIView):
"""
上传图片
"""
renderer_classes = [JSONRenderer] # 渲染器
authentication_classes = [Authtication, ]
def post(self, request):
id=int(request.POST.get('id'))
good=Good.objects.filter(id=id).first()
new_img=Images()
new_img.image=request.FILES.get('file')
new_img.good=good
new_img.save()
return HttpResponse(200)
from django.urls import path
from .views import GetCategory,CreateAdOrShop,UpLoadImg
urlpatterns = [
path('getcategory/',GetCategory.as_view()),
path('createadorshop/',CreateAdOrShop.as_view()),
path('uploadimg/',UpLoadImg.as_view())
]