Python Web开发:后台管理系统多对一模型处理
来自CloudWiki
登录后台
打开管理后台,http://127.0.0.1:8000/admin/
基本使用
添加作品
点击“作品”栏,添加作品
添加作品图片
这里你会发现,通过模型的外键,已经自动地为数据创建了关联,
只需选择所属的产品即可。
注意:这里删除某一产品时,会同时从删除其包含的所有“产品图片”数据。
进阶使用
上述添加过程,需要操作两个表单。
我们可以建立一种关联模型管理方法,将“产品”和“产品图片”模型在一个页面中进行管理。
主要通过更改注册模型的代码来实现。
from django.contrib import admin from .models import Product,ProductImg class ProductImgInline(admin.StackedInline): model = ProductImg extra = 1 # 默认显示条目的数量 class ProductAdmin(admin.ModelAdmin): inlines = [ProductImgInline,] admin.site.register(Product, ProductAdmin)
首先通过admin.StackedInline创建了一个内联模型管理器ProductImgInline,该管理器使得模型得以以集成的方式在后台管理系统中显示
对应的model属性为ProductImg
然后定义了产品模型ProductAdmin,其内联属性指向前面的ProductImgInline
最后通过register将“产品”和“产品图片”模型进行绑定。
现在,原本需要在两个表单里添加的数据,现在一个表单中就可以了