我有一个mangtomang字段的model, 'ManyRelatedManager' object is not iterable

来源:7-13 django信号量实现用户密码修改

慕仙4918716

2019-01-08

老师,请看一下我这个问题。

应该使用外键管理部门信息

department = models.ManyToManyField(Department)
roles = models.ManyToManyField(HRole)

在ModelSerializer里
class EmpSerializers2(serializers.ModelSerializer):
# userNum = serializers.CharField(max_length=128,)
user = serializers.CharField(max_length=128,)
roles = serializers.ListField()
# department = serializers.ListField() #child=serializers.CharField(max_length=128,)

def validate(self, attrs):
    if attrs['user']:
        attrs['user'] = User.objects.filter(username=attrs['user']).first()    

    return attrs

def create(self, validated_data):
    role_m = validated_data.pop('roles')
    depart_m = validated_data.pop('department')
    myEmp =  Employee.objects.create(**validated_data)

返回前端的是500 ‘ManyRelatedManager’ object is not iterable
把这个多对多字段从model里删除后,就没有这个问题了

写回答

1回答

慕仙4918716

提问者

2019-01-08

roles = serializers.PrimaryKeyRelatedField(queryset=HRole.objects.all(),many=True,allow_null=True)

把验证改成这样好了

iterable是一个数据类型

0
1
bobby
好的,
2019-01-10
共1条回复

Python前后端分离开发Vue+Django REST framework实战

Django REST framework课程视频,RESTFul API前后端分离开发

2895 学习 · 2481 问题

查看课程