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}]
}
いや、エラーが今 –
はあなた 'プリント(でした "V1/grupos/'ID' /でKeyError例外" でありますidUsuarios_data) 'と表示してください? – zaidfazil
これは、単にOrderedDict {} –