【Django Admin】多对多字段,admin list显示 筛选当前账号的数据 导出配置

多对多字段:   technology_user = fields.ManyToManyField(to="custom_auth.AdminUser",verbose_name="技术",blank=True,null=True)

 

 


   放到list_display显示即可
   # 多对多字段显示
    def technology_user(self, obj):
        technology_str = ""
        for user_obj in obj.technology_user.all():  # 红色部分是多对多字段
            technology_str = technology_str + user_obj.first_name + ","
        return technology_str



 

    # 技术 在 订单只能看到自己的订单
    def get_queryset(self, request):
        if request.user.groups.filter(name="技术") and not request.user.is_superuser:
            return AdminUser.objects.get(id=request.user.id).innerorder_set.order_by('id')       # 多对多查询
        else:
            return super(InnerOrderAdmin, self).get_queryset(request)

 

 

 



#
多对多 class kefu_widget(widgets.CharWidget): def render(self,value, obj): res_name = "" for user in AdminUser.objects.filter(innerorder=obj.id): res_name = res_name + user.first_name + "" return res_name[0:-1]

 

 

 

 

posted @ 2022-11-18 18:01  PythonNew_Mr.Wang  Views(272)  Comments(0)    收藏  举报