1. 程式人生 > 實用技巧 >解決vue前端不顯示自定義欄位

解決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