2017-08-07 10 views
0

私は多対多の関係で大きな問題に遭遇しました。私はそれらを保存してグループを作成するために、ユーザーのIDをグループシリアライザに送信しようとしていますが、IDは決してありません記録され、gruposは何もせずに作成され、nombreを保存してオブジェクトを作成します。ManytoMany関係シリアライザ

Models.py

class Usuarios(models.Model): 
class Meta: 
    db_table = "Usuarios" 
idUsuario = models.AutoField(primary_key=True) 
tipoUsuario = models.BooleanField(blank=False) 
nombre = models.CharField(max_length=100,blank=False) 
idUser = models.IntegerField(blank=False) 
idEscuela = models.ForeignKey(Escuelas, on_delete=models.CASCADE) 

class Grupos(models.Model): 
class Meta: 
    db_table = "Grupos" 
idGrupo = models.AutoField(primary_key=True) 
nombre = models.CharField(max_length=30,blank=False,unique=True) 
idUsuario = models.ManyToManyField(Usuarios) 

class idUsuarioSerializer(serializers.Serializer): 
#idUsuario = serializers.IntegerField(required=True) 
class Meta: 
    model = Usuarios 
    fields = ('idUsuario',) 


class GrupoSerializer(serializers.Serializer): 
    nombre = serializers.CharField(required=True) 
    idUsuario = idUsuarioSerializer(many=True) 
    class Meta: 
     model = Grupos 
     fields = ('nombre','idUsuario') 
    def create(self, validated_data): 

     idUsuarios_data = validated_data.pop('idUsuario') 
     grupo = Grupos.objects.create(**validated_data) 
     for idUsuario_data in idUsuarios_data: 
      #print(**idUsuario_data) 
      #Usuarios.objects.create(grupo=grupo,**idUsuario_data) 
      grupo.idUsuario.add(**idUsuario_data) 
     grupo.save() 
     return grupo 

しかしこれはidUsuarioフィールドに何も保存していないし、また、私はドキュメントのようにそれを行う場合には、エラー「グループは有効なキーワードではありません」または私は「idGrupoを使用していても、私を与えます"それは同じ、私はすでに他の答えをチェックすることは可能ではないように見える、すでに試したメソッドを追加しようとした。

私は次のようなJSON

{ 
"nombre": "4B", 
"idUsuario":[{"id":1},{"id":2}] 
} 

答えて

0

このような何かを試してみてくださいを送って、

for idUsuario_data in idUsuarios_data: 
    grupo.idUsuario.add(idUsuario_data['id']) 
grupo.save() 
+0

いや、エラーが今 –

+0

はあなた 'プリント(でした "V1/grupos/'ID' /でKeyError例外" でありますidUsuarios_data) 'と表示してください? – zaidfazil

+0

これは、単にOrderedDict {} –

関連する問題