Desativar a criação de objetos aninhados na estrutura de descanso do django
Oi,
Você pode me ajudar comodesativar a criação de objetos aninhados ?
Eu tenho serializadores como este:
(O funcionário possui ForeignKey para a equipe)
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
ou poderia ser:
class EmployeeSerializer(serializers.ModelSerializer):
team = TeamSerializer()
class Meta:
model = Employee
fields = ('id', 'name', 'surname', 'team')
quando eu postar json (criar funcionário)
{
name: "name",
surname: "surname",
team: {
id: 1,
name: "Web Team"
}
}
O empregado de objeto cria, mas também a equipe de objetos ... existe alguma maneira de desativar a criação de objetos de equipe junto com o empregado? Eu só quero criar um funcionário e definir a equipe selecionada (atualmente no banco de dados) como funcionário
E no GET (lista) eu gostaria de recuperar dados como:
{
name: "name",
surname: "surname",
team: {
id: 1,
name: "Web Team"
}
não assim
{
name: "name",
surname: "surname",
team: 1
}
Existe alguma maneira de fazer isso no framework django rest (também iam usando angular)
Saudações
Atualmente serializadores:
class TeamSerializer(serializers.ModelSerializer):
class Meta:
model = Team
class EmployeeSerializer(serializers.ModelSerializer):
team = TeamSerializer()
class Meta:
model = Employee
Eu não posso usar serializadores.RelatedField () porque ele é retornado apenasunicode Preciso de 'id' e 'nome' (suponho)
este é o meu POST json: (Restangular.all ('employee'). post (data))
data: {
name: "emp1",
photo: "",
skype: "",
surname: "qweqwe",
team: {
id: 1,
name: "Web",
}
}
e DRF retornou json:
employee: {
id: 2,
name: "emp1",
photo: "",
skype: "",
surname: "qweqwe",
team: {
id:3, <-- NEW ID!
name: "Web"
}
}
então sim, tenho certeza de que novos objetos de equipe foram criados. E agora ?:)