当前位置: 首页 > 后端技术 > Python

杀手xadmin开发在线教育网站8-4_xadmin快速配置列表、搜索、过滤等功能

时间:2023-03-26 13:12:37 Python

在xadmin中注册你自己的模型在应用程序中创建一个新的adminx.py编辑文件importxadminfromapps.courses.modelsimportCourse#xadmin允许我们不继承任何东西)app显示中文修改apps.pyfromdjango.appsimportAppConfigclassCoursesConfig(AppConfig):name='apps.courses'verbose_name='课程管理'添加课程信息需要添加教师+机构+城市信息(教师也需要先添加机构信息,机构信息取决于城市信息)注册机构app(教师+机构+城市)修改apps/organizations/adminx.pyimportxadminfromapps.organizations.modelsimportTeacher,CourseOrg,City#xadmin不允许我们继承任何内容min)xadmin.site.register(City,CityAdmin)添加城市信息,返回的信息无法理解,所以重写__str__方法修改组织模型fromdjango.dbimportmodelsfromapps.users.modelsimportBaseModelclassCity(BaseModel):name=models.CharField(max_length=20,verbose_name='city')desc=models.CharField(max_length=200,verbose_name='description')类元:verbose_name='city'verbose_name_plural=verbose_namedef__str__(self):returnself.nameclassCourseOrg(BaseModel):name=models.CharField(max_length=50,verbose_name='机构名称')desc=models.TextField(verbose_name='description')tag=models.CharField(default='全国著名',max_length=10,verbose_name='机构标签')category=models.CharField(default='pxjp',verbose_name='机构类别',max_length=4,choices=(('pxjg','培训机构'),('gr','个人'),('gx','大学')))click_nums=models.IntegerField(default=0,verbose_name='点击次数')fav_nums=models.IntegerField(default=0,verbose_name='收藏次数')image=models.ImageField(upload_to='org/%Y/%m',verbose_name='logo',max_length=100)address=models.CharField(max_length=150,verbose_name="机构地址")students=models.IntegerField(default=0,verbose_name="学生人数")course_nums=models.IntegerField(默认=0,详细名称=课程数量”)city=models.ForeignKey(City,on_delete=models.CASCADE,verbose_name='city')classMeta:verbose_name='courseinstitution'verbose_name_plural=verbose_namedef__str__(self):returnself.nameclassTeacher(BaseModel):org=models.ForeignKey(CourseOrg,on_delete=models.CASCADE,verbose_name="Affiliation")name=models.CharField(max_length=50,verbose_name="教师姓名")work_years=models.IntegerField(default=0,verbose_name="工作年限")work_company=models.CharField(max_length=50,verbose_name="工作公司")work_position=models.CharField(max_length=50,verbose_name="公司职位")points=models.CharField(max_length=50,verbose_name="teachingcharacteristics")click_nums=models.IntegerField(default=0,verbose_name="clicks")#人气排序fav_nums=models.IntegerField(default=0,verbose_name="收藏数量")age=models.IntegerField(default=18,verbose_name="age")image=models.ImageField(upload_to="teacher/%Y/%m",verbose_name="头像",max_length=100)classMeta:verbose_name='teacher'verbose_name_plural=verbose_namedef__str__(self):returnself.name现在显示正常自定义页面功能1.显示栏目内容list_displayclassCityAdmin(object):list_display=['id','name','描述']2。搜索字段search_fieldsclassCityAdmin(object):list_display=['id','name','desc']search_fields=['name','desc']3.过滤字段list_filterclassCityAdmin(object):list_display=['id','name','desc']search_fields=['name','desc']list_filter=['name','desc','add_time']4.在列表页数据大的时候直接修改字段list_editable很方便classCityAdmin(object):list_display=['id','name','desc']search_fields=['name','desc']list_filter=['name','desc','add_time']list_editable=['name','desc']