【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]

Python全栈(后端、数据分析、脚本、爬虫、EXE客户端) / 前端(WEB,移动,H5) / Linux / SpringBoot / 机器学习