解决vue前端不显示自定义字段

 

 

 

 

 

前端添加代码

<span slot="roles" slot-scope="roles">
  <a-tag
    v-for="role in roles"
    :key="role.id"
    :color="role.role__name === 'loser' ? 'volcano' : role.role__name.length > 5 ? 'geekblue' : 'green'"
  >
    {{ role.role__zh_name}}
  </a-tag>
</span>


  {
    title: '角色02',
    key: 'roles',
    dataIndex: 'roles',
    scopedSlots:{customRender:'roles'}
  },
TableList.vue

 

后端代码

解决前

class UserSerializer(serializers.ModelSerializer):
    #自定义字段并反向查询
    roles=serializers.SerializerMethodField(required=False)

    def validate(self,attrs):
        return attrs
    class Meta:
        model=User
        fields='__all__'
        read_only_fields=('',)
        extra_kwargs={
            "address":{
                "min_length":5,
                "default":"默认测试地址"
            }
        }

    filter_fields = ('username',)

    # def create(self,data):
    #     print(data)
    #     username=data.get('username','')

    #
    #获取过滤后自定义字段展示的数据
    def get_roles(self,row):
        roles_obj_list=UserRole.objects.filter(user=row).values('role__id','role__zh_name','role__name')
        return roles_obj_list
serializers.py

 

解决后

class UserSerializer(serializers.ModelSerializer):
    #自定义字段并反向查询
    roles=serializers.SerializerMethodField(required=False)

    def validate(self,attrs):
        return attrs
    class Meta:
        model=User
        fields='__all__'
        read_only_fields=('',)
        extra_kwargs={
            "address":{
                "min_length":5,
                "default":"默认测试地址"
            }
        }

    filter_fields = ('username',)

    # def create(self,data):
    #     print(data)
    #     username=data.get('username','')

    #
    #获取过滤后自定义字段展示的数据
    def get_roles(self,row):
        roles_obj_list=UserRole.objects.filter(user=row).values('role__id','role__zh_name','role__name')
        return roles_obj_list
serializers.py

 

posted @ 2020-11-27 17:20  小虾米爱吃鱼  阅读(1077)  评论(0编辑  收藏  举报