django xadmin save_models

本文探讨了在Django使用Xadmin时,如何实现在修改项目数据时进行连带更新,如同步更新关联的子表字段,并展示了通过覆写save_models方法实现这一功能的具体代码实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

django   xadmin   在修改数据时的连带操作

class ProjectAdmin(object):
    list_display = [
        'code', 'pname', 'wheel', 'clientPerson', 'get_branchinfo_nums','get_branchinfoInput_nums',
        'monthCurrent', 'state', 'protype',  'go_to','excel']
    search_fields = [
        'pname', 'code', 'wheel', 'clientPerson', 'inputCount', 'checkCount', 'complaining', 'complained',
        'monthCurrent',
        'state', 'protype']
    list_filter = [
        'pname', 'code', 'wheel', 'clientPerson', 'inputCount', 'checkCount', 'complaining', 'complained',
        'monthCurrent', 'state', 'protype']
    list_editable = ['pname', 'wheel','clientPerson','state']
    list_display_links = ['code']


   # qds=super().get_list_queryset()

##  修改数据时的连带操作

    def save_models(self):
        print("save_models")
        branchinfo.objects.filter(projectId=self.new_obj.id).update(month=self.new_obj.monthCurrent)
        #self.new_obj.Project = self.request.Project
        super().save_models()
    # inlines = [branchinfoInline]


    # def queryset(self):
    #     #     # 重载queryset方法,来过滤出我们想要的数据的
    #     #     #user=User.objects.get(id=userID)
    #     #    # print(user)
    #     #     #self.request.user
    #     #     qs = super(ProjectAdmin, self).queryset()
    #     #     # 只显示is_banner=True的课程
    #     #     qs = qs.exclude(protype=str(3))
    #     #
    #     #     return qs


##  设置  列表根据用户  权限而现实 内容
    def get_list_queryset(self):
        request=self.request
        user=request.user
        print(user.protype)
        qs = super().get_list_queryset()
        if user.protype == 3:
            qs=super().get_list_queryset().filter(protype='3')
        elif user.protype == 5:
            qs=super().get_list_queryset().filter(Q(protype='5')|Q(protype='6'))
        elif user.protype == 0:
            qs=super().get_list_queryset()
        elif user.protype == 7:
            qs=super().get_list_queryset().filter(protype='7')
        else:
            qs = super().get_list_queryset().exclude(protype='3')
        return qs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值