你好
您能帮我如何禁止创建嵌套对象吗?
我有这样的序列化器:(
员工具有对团队的ForeignKey)
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
Run Code Online (Sandbox Code Playgroud)
或者可以是:
class EmployeeSerializer(serializers.ModelSerializer):
team = TeamSerializer()
class Meta:
model = Employee
fields = ('id', 'name', 'surname', 'team')
Run Code Online (Sandbox Code Playgroud)
当我发布json(创建员工)时
{
name: "name",
surname: "surname",
team: {
id: 1,
name: "Web Team"
}
}
Run Code Online (Sandbox Code Playgroud)
员工创建对象对象,但对象团队也......有什么方法可以禁止与员工一起创建团队对象?我只想创建员工并将选定的团队(当前在数据库中)设置为员工
在GET(列表)上,我希望能够检索以下数据:
{
name: "name",
surname: "surname",
team: {
id: 1,
name: "Web Team"
} …Run Code Online (Sandbox Code Playgroud) django foreign-key-relationship angularjs django-rest-framework
我在我的viewsets.ModelViewSet上使用@detail_route.
class CompanyViewSet(viewsets.ModelViewSet):
queryset = Company.objects.all()
serializer_class = serializers.CompanySerializer
@detail_route(methods=['get', ], permission_classes=[IsCompanyUserPermission, ])
def accounts(self, request, pk):
...
return Response(...)
# urls.py
router.register(r'companies', views.CompanyViewSet)
Run Code Online (Sandbox Code Playgroud)
这段代码创建了url:
/companies/
/companies/{id}
/companies/{id}/accounts
Run Code Online (Sandbox Code Playgroud)
我不知道如何添加路线/视图到详细帐户:
/companies/{id}/accounts/{id_account}
Run Code Online (Sandbox Code Playgroud)
有没有办法添加路由和视图来处理这条路线?
(最好的选择是在CompanyViewSet上添加)
干杯,