stark组件5_扩展url
admin
2023-07-20 12:42:20
0

Stark组件扩展url

这个功能在很多地方都要用到
这里举例的需求是在customer查看页面中,点击咨询课程中的某一个课程名称就会将这个课程与对应的同学解绑(不再显示)
要实现这个需求需要新添加一条url,这条url中我们可以获取想要解绑的课程id和表中这条记录的主键

方法与filter、pop等功能相同,都是在表所对应的自己的配置类中设置,从而实现之后这种表才有这条独立的url

在stark.py中,我们给Customer这张表设置独立的配置类,extra_url会返回一个url,对应的视图函数为self.cancel_course:

class CustomerConfig(ModelStark):

    #处理课程的显示样式和每个课程对应的url,url中带有要解绑的课程id和表中这条记录的主键id
    def display_course(self, obj=None, is_header=False):
        if is_header:
            return "咨询课程"
        temp = []
        for course_obj in obj.course.all():
            s = "%s " % (obj.pk, course_obj.pk, course_obj.name)
            temp.append(s)

        return mark_safe("".join(temp))

    #视图函数,实现点击后删除功能
    def cancel_course(self, request, customer_id, course_id):
        obj = Customer.objects.filter(pk=customer_id).first()
        obj.course.remove(course_id)
        #返回当前表的查看页面
        return redirect(self.get_list_url())

    #新的url,点击相应课程就会走到这条url来,这是只单独为Customer添加一条url
    def extra_url(self):
        temp = []
        temp.append(url(r"cancel_course/(\d+)/(\d+)", self.cancel_course))
        return temp

site.register(Customer, CustomerConfig)

在sites.py中,我们设置一个通用的extra_url功能,但返回是空,所以其他表对应的url中没有cancel_course/(\d+)/(\d+):

class ModelStark():  #配置类
    def extra_url(self):
        return []

    #我们在二级分发中将这条url添加到temp列表中
    def get_urls2(self):
        #额外添加一个url
        temp.extend(self.extra_url())

        return temp

相关内容

热门资讯

“回旋震”把日本向东推动6毫米... 据当地时间6月18日发表于《科学》(Science)的最新研究,2011年日本“3·11”大地震发生...
首开告捷 劲销231套|招商臻... 一座城市的人居进阶,总需要一个里程碑式的作品。当百年招商遇见千年商都,一场关于精奢生活的革新就此启幕...
特朗普被曝挪用特勤局资金建宴会... 澎湃新闻记者 南博一美国总统特朗普推动的白宫宴会厅建设计划再次引发争议。尽管特朗普政府多次强调白宫宴...
缅甸总统参观宇树科技 6月19日端午节,缅甸总统敏昂莱一行到访宇树科技参观,交流最新机器人产品和技术成果。宇树期待和全球更...
日本防相:“堤丰”导弹系统不会... 据凤凰卫视报道,日本防卫大臣小泉进次郎6月19日表示,配合本月22日起举行的“勇敢之盾2026”军演...
滑翔机与风筝线剐蹭发生坠落,致... 6月18日,重庆南岸区应急局发布《南岸峡口重庆天盟航空体育运动俱乐部有限 公司“4·4”一般坠落事故...
订单口碑双丰收!看银基广场凭啥... 6月12日,2026大湾区(广州)国际服装及时尚生活展览会正式落下帷幕。作为展会联合主办方,郑州银基...
老板抽油烟机关机后一直响什么原... 原因主要在于,1、烟道密封可能没有做好,厨房装修的时候抽油烟机的管道和主烟道之间必须要做好密封。2、...
修热水器600元贵吗长沙 修热水器600元是否贵,一般情况下是根据所维修热水器故障的具体情况来决定的。在长沙地区,热水器维修价...
循环水热水器水压小怎么办 循环水热水器的水压小是一种比较普遍的问题,可能会导致用水不畅、水温不稳定等情况,给生活带来不便。以下...