Inhabilite la creación de objetos anidados en django rest framework
Hola,
Me puedes ayudar comodeshabilitar la creación de objetos anidados ?
Tengo serializadores como este:
(El empleado tiene ForeignKey para el equipo)
class TeamSerializer(serializers.ModelSerializer):
class Meta:
model = Team
fields = ('id', 'name')
class EmployeeSerializer(serializers.ModelSerializer):
class Meta:
model = Employee
fields = ('id', 'name', 'surname', 'team')
depth = 1
o en su lugar podría ser:
class EmployeeSerializer(serializers.ModelSerializer):
team = TeamSerializer()
class Meta:
model = Employee
fields = ('id', 'name', 'surname', 'team')
cuando publico json (crear empleado)
{
name: "name",
surname: "surname",
team: {
id: 1,
name: "Web Team"
}
}
objeto empleado crea pero también objeto equipo ... ¿hay alguna forma de desactivar la creación de objetos de equipo junto con el empleado? solo quiero crear un empleado y establecer el equipo seleccionado (actualmente en la base de datos) como empleado
Y en GET (lista) me gustaría poder recuperar datos como:
{
name: "name",
surname: "surname",
team: {
id: 1,
name: "Web Team"
}
así no
{
name: "name",
surname: "surname",
team: 1
}
¿Hay alguna manera de hacerlo en django rest framework (también iam usando angular)
Saludos
Actualmente serializadores:
class TeamSerializer(serializers.ModelSerializer):
class Meta:
model = Team
class EmployeeSerializer(serializers.ModelSerializer):
team = TeamSerializer()
class Meta:
model = Employee
No puedo usar serializadores.RelatedField () porque solo se devuelveUnicode Necesito 'id' y 'nombre' (supongo)
esta es mi POST json: (Restangular.all ('empleado'). post (datos))
data: {
name: "emp1",
photo: "",
skype: "",
surname: "qweqwe",
team: {
id: 1,
name: "Web",
}
}
y DRF devolvió json:
employee: {
id: 2,
name: "emp1",
photo: "",
skype: "",
surname: "qweqwe",
team: {
id:3, <-- NEW ID!
name: "Web"
}
}
así que sí, estoy seguro de que se crearon nuevos objetos de equipo. Y ahora qué ?:)