请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

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

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

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

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里删除后,就没有这个问题了

正在回答 回答被采纳积分+3

1回答

提问者 慕仙4918716 2019-01-08 20:51:36

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

把验证改成这样好了

iterable是一个数据类型

0 回复 有任何疑惑可以回复我~
  • bobby #1
    好的,
    回复 有任何疑惑可以回复我~ 2019-01-10 18:30:41
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信