当前位置: 首页>编程语言>正文

python后端开发流程库 python后端项目

如果直接阅读本文,您可能有些不知所云,这是因为我用很多篇幅讲了一个事情,如果想知道上下文,那么建议您从本专栏第22章看起:Python3开发–22–了解Django框架

一、配置项目应用与模型

因为Admin后台系统是对项目的数据表进行维护和管理,而项目应用commodity和shopper定义了数据模型,因此必须将它们配置到Admin后台系统。

1、修改代码:commodity/__init__.py

from .apps import CommodityConfig

default_app_config = 'commodity.CommodityConfig'

2、修改代码:commodity/apps.py

from django.apps import AppConfig

class CommodityConfig(AppConfig):
    name = 'commodity'
    verbose_name = '商品管理'

3、修改代码:commodity/admin.py

from django.contrib import admin
from .models import *

# 修改title和header
admin.site.site_title = '母婴后台系统'
admin.site.site_header = '母婴电商后台管理系统'
admin.site.index_title = '母婴平台管理'

@admin.register(Types)
class TypesAdmin(admin.ModelAdmin):
    list_display = [x for x in list(Types._meta._forward_fields_map.keys())]
    search_fields = ['firsts', 'seconds']
    list_filter = ['firsts']

@admin.register(CommodityInfos)
class CommodityInfosAdmin(admin.ModelAdmin):
	# 在数据新增页或数据修改页设置可编辑的字段
    # fields = ['name','sezes','types','price','discount']

    # 在数据新增或修改的页面设置不可编辑的字段
    # exclude = []

    # 改变数据新增页或数据修改页的网页布局
    fieldsets = (
        ('商品信息', {
            'fields': ('name','sezes','types','price','discount')
        }),
        ('收藏数量', {
            # 设置隐藏与显示
            'classes': ('collapse',),
            'fields': ('likes',),
        }),
    )

    # 将下拉框改为单选按钮
    # admin.HORIZONTAL是水平排列
    # admin.VERTICAL是垂直排列
    radio_fields = {'types': admin.HORIZONTAL}

    # 在数据新增页或数据修改页设置可读的字段,不可编辑
    # readonly_fields = ['sold',]

    # 设置排序方式,['id']为升序,降序为['-id']
    ordering = ['id']

    # 设置数据列表页的每列数据是否可排序显示
    sortable_by = ['price', 'discount']

    # 在数据列表页设置显示的模型字段
    list_display = ['id', 'name', 'sezes', 'types', 'price', 'discount']

    # 为数据列表页的字段id和name设置路由地址,该路由地址可进入数据修改页
    # list_display_links = ['id', 'name']

    # 设置过滤器,若有外键,则应使用双下画线连接两个模型的字段
    list_filter = ['types']

    # 在数据列表页设置每一页显示的数据量
    list_per_page = 100

    # 在数据列表页设置每一页显示最大上限的数据量
    list_max_show_all = 200

    # 为数据列表页的字段name设置编辑状态
    list_editable = ['name']

    # 设置可搜索的字段
    search_fields = ['name', 'types']

    # 在数据列表页设置日期选择器
    date_hierarchy = 'created'

    # 在数据修改页添加“另存为”功能
    save_as = True

    # 设置“动作”栏的位置
    actions_on_top = False
    actions_on_bottom = True

    def formfield_for_dbfield(self, db_field, **kwargs):
        if db_field.name == 'types':
            db_field.choices = [(x['seconds'], x['seconds'])for x in Types.objects.values('seconds')]
        return super().formfield_for_dbfield(db_field, **kwargs)

    # 数据批量操作
    def get_datas(self, request, queryset):
        temp = []
        for d in queryset:
            t=[d.name,d.types,str(d.discount)]
            temp.append(t)
        f = open('d://data.txt', 'a')
        for t in temp:
            f.write(','.join(t) + '\r\n')
        f.close()
        # 设置提示信息
        self.message_user(request, '数据导出成功!')

    # 设置函数的显示名称
    get_datas.short_description = '导出所选数据'
    # 添加到“动作”栏
    actions = ['get_datas']

4、修改代码:shopper/__init__.py

from .apps import ShopperConfig

default_app_config = 'shopper.ShopperConfig'

5、修改代码:shopper/apps.py

from django.apps import AppConfig

class ShopperConfig(AppConfig):
    name = 'shopper'
    verbose_name = '订单管理'

6、修改代码:shopper/admin.py

from django.contrib import admin
from .models import *

@admin.register(CartInfos)
class CartInfosAdmin(admin.ModelAdmin):
    list_display = ['id', 'quantity']

@admin.register(OrderInfos)
class OrderInfosAdmin(admin.ModelAdmin):
    list_display = ['id', 'price', 'created', 'state']
    list_filter = ['state']
    date_hierarchy = 'created'

二、总结

至此,Django项目就结束了,博主不再向后更新了!

看看本节我们动过哪些代码文件:

python后端开发流程库 python后端项目,python后端开发流程库 python后端项目_python,第1张



https://www.xamrdz.com/lan/5n91924606.html

相关文章: