首页 > 其他分享 >车辆管理系统

车辆管理系统

时间:2023-02-18 17:22:05浏览次数:37  
标签:name 管理系统 models 车厂 车辆 import class verbose

车辆管理系统

题目

1 基本信息:车型(CarModel),车厂(CarFactory),经销商(Distributor)三个表,
一个车厂可以生产多种车型,一个经销商可以出售多种车型,一个车型可以有多个经销商出售
  车型:车型名,车型出厂价,车厂id
  车厂:车厂名,车厂地址,联系电话
  经销商:经销商名,地址,联系电话
2 有用户表,基于django内置user表,扩展mobile字段
3 编写登陆接口,jwt方式返回token,
    格式为{status:100,msg:登陆成功,token:safasdfa}
3 有管理员登陆后可以新增,删除车型,车厂,经销商
2 普通用户登陆可以查看车型(群查分页,单查)
    查车型:返回车型信息,车厂名字,经销商名字和电话

加分项:
用户注册接口
管理员有用户锁定,删除功能
# 模型表
from django.db import models
from rest_framework import serializers
from django.contrib.auth.models import AbstractUser


# Create your models here.
class CarModel(models.Model):
    """ 车型表"""
    name = models.CharField(max_length=32, verbose_name='车型名')
    price = models.IntegerField(verbose_name='车型出产价')

    # 外键 一对多
    carfactory = models.ForeignKey(to='CarFactory', on_delete=models.CASCADE, null=True)

    # 多对多
    distributors = models.ManyToManyField(to='Distributor')

    # 定制返回格式
    carfactory_detail = serializers.SerializerMethodField()

    def carfactory_detail(self):
        return {'name': self.carfactory.name, 'address': self.carfactory.address, 'phone': self.carfactory.phone}

    distributor_list = serializers.SerializerMethodField()

    def distributor_list(self):
        l1 = []
        for distributor in self.distributors.all():
            l1.append({'name': distributor.name, 'address': distributor.address, 'phone': distributor.phone})

        return l1


class CarFactory(models.Model):
    """ 车产表"""
    name = models.CharField(max_length=32, verbose_name='车厂名')
    address = models.CharField(max_length=32, verbose_name='车厂地址')
    phone = models.CharField(max_length=32, verbose_name='车厂联系电话')


class Distributor(models.Model):
    """ 经销商表"""
    name = models.CharField(max_length=32, verbose_name='经销商名')
    address = models.CharField(max_length=32, verbose_name='经销商地址')
    phone = models.CharField(max_length=32, verbose_name='经销商联系电话')


# class UserInfo(AbstractUser):
    # mobile = models.BigIntegerField(verbose_name='手机号')
	# 扩展的表要去setting注册# AUTH_USER_MODEL='app01.UserInfo'




# url
from django.contrib import admin
from app01 import views
from django.urls import path, include
from rest_framework_jwt.views import obtain_jwt_token

from rest_framework.routers import SimpleRouter
router = SimpleRouter()
router.register('car',views.CarView,'car')
router.register('car_factory',views.CarFactoryView,'car_factory')
router.register('car_distibutor',views.DistibutorView,'car_distibutor')



urlpatterns = [
    path('admin/', admin.site.urls),
    # 登录接口
    path('login/',obtain_jwt_token),
    path('api/v1/',include(router.urls))

]
# view
from rest_framework.viewsets import ViewSet,ModelViewSet,ViewSetMixin,ReadOnlyModelViewSet

from .models import CarModel,CarFactory,Distributor
from .serializer import CarSerializer,CarFactorySerializer,CarDistributorSerializer
from rest_framework_jwt.authentication import JSONWebTokenAuthentication
from rest_framework.permissions import IsAuthenticated
from .permission import CommonPerssion
from .page import CommonPageNumberPagination
# 车
class CarView(ModelViewSet):
    queryset = CarModel.objects.all()
    serializer_class = CarSerializer
    authentication_classes = [JSONWebTokenAuthentication]
    permission_classes = [IsAuthenticated,CommonPerssion]
    pagination_class=CommonPageNumberPagination
# 车厂
class CarFactoryView(ModelViewSet):
    queryset = CarFactory.objects.all()
    serializer_class = CarFactorySerializer
    authentication_classes = [JSONWebTokenAuthentication]
    permission_classes = [IsAuthenticated,CommonPerssion]
    pagination_class=CommonPageNumberPagination
# 经销商
class DistibutorView(ModelViewSet):
    queryset = Distributor.objects.all()
    serializer_class = CarDistributorSerializer
    authentication_classes = [JSONWebTokenAuthentication]
    permission_classes = [IsAuthenticated,CommonPerssion]
    pagination_class=CommonPageNumberPagination
	
# settings
# 扩充模型表注册
# AUTH_USER_MODEL='app01.UserInfo'


JWT_AUTH = {
    'JWT_RESPONSE_PAYLOAD_HANDLER': 'app01.utils.jwt_response_payload_handler'
}

#  设置过期期间
import datetime
JWT_RESPONSE_PAYLOAD_HANDLER = {
    'JWT_EXPIRATION_DELTA': datetime.timedelta(days=7)
}

# 权限类
from rest_framework.permissions import BasePermission
class CommonPerssion(BasePermission):

    def has_permission(self, request, view):
        if request.user.is_superuser:
            return True
        else:
            if request.method=='GET':
                return True
            else:
                return False
# 分页
# 导入 PageNumberPagination
from rest_framework.pagination import PageNumberPagination
class CommonPageNumberPagination(PageNumberPagination):
    page_size = 2  # 每页两条
    page_query_param = 'page'
    page_size_query_param='size'
    max_page_size = 3

标签:name,管理系统,models,车厂,车辆,import,class,verbose
From: https://www.cnblogs.com/zhanglanhua/p/17133100.html

相关文章

  • 基于扩展卡尔曼滤波的自适应智能无人车辆行驶matlab仿真,输出三维动态行驶动画
    1.算法描述        EKF扩展卡尔曼滤波要解决的是卡尔曼滤波不适用于非线性模型的问题。其和卡尔曼滤波算法结构相同,只是将非线性模型线性化,然后再应用卡尔曼滤波......
  • 8.人人开源搭建后台管理系统
    在Gitee找到人人开源在Gitee找到人人开源  我们的后台管理系统的后端代码使用renren-fast,前端代码使用renren-fast-vuegit下载这两个项目代码renren-fast后端使用......
  • C/C++学生个人消费记录管理系统[2023-02-17]
    C/C++学生个人消费记录管理系统[2023-02-17]学生个人消费记录管理系统学生个人消费记录管理系统给学生一个管理个人财务的平台,主要用于对学生的生活费用收入、支出进行添......
  • 数据结构 -- 景区旅游信息管理系统
    景区旅游信息管理系统【问题描述】在旅游景区,经常会遇到游客打听从一个景点到另一个景点的最短路径和最短距离,这类游客不喜欢按照导游图的线路来游览,而是挑选自己感兴趣的景......
  • 顺通鞋服进销存OA管理系统
    鞋服进销存OA管理系统通过十几年的积淀与创新,顺通与众多鞋服企业一起共创,形成了涵盖协同办公、移动办公、知识管理、数据运营、多维门户等领域,以鞋服新品研发管理、生产排......
  • 智能建筑中高低压配电设备集成和管理系统应用分析
    罗轩志安科瑞电气股份有限公司上海嘉定201801[摘要]电力智能监控系统是信息时代的产物,反映了人类在高效经济时代对生活质量的不断追求,美好的希望和简化的工作程序。当前,正......
  • 浅析物联网技术在公共建筑能源管理系统中的应用
    罗轩志安科瑞电气股份有限公司上海嘉定201801摘要:在能源形势紧张的大趋势下,高能耗的大型公共建筑能源管理系统的建设逐渐受到重视,以物联网技术及基础的建筑能源管理平台可......
  • 公租房管理系统,让公租房真正成为"公平房"
    版权声明:本文章由“厦门多米克信息技术有限公司”编辑组汇编而成,未经授权和许可,任何个人或媒体不得对本网站的文章及其他信息资料予以复制、转载、抄袭、改编。厦门多米克......
  • 廉租房管理系统,市住房局关于网上有关防城港市房价问题的情况声明
    版权声明:本文章由“厦门多米克信息技术有限公司”编辑组汇编而成,未经授权和许可,任何个人或媒体不得对本网站的文章及其他信息资料予以复制、转载、抄袭、改编。厦门多米克......
  • C/C++图书销售管理系统[2023-02-16]
    C/C++图书销售管理系统[2023-02-16]题目20图书销售管理系统[说明及要求]实现图书信息(书号、书名、作者、定价、数量)的新增、修改、删除和查询功能;实现销售信息(书号......