小编use*_*778的帖子

禁用在Django Rest框架中创建嵌套对象

你好

您能帮我如何禁止创建嵌套对象吗?

我有这样的序列化器:(
员工具有对团队的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

5
推荐指数
1
解决办法
2307
查看次数

Django Rest Framework - @detail_route的详细信息页面

我在我的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上添加)

干杯,

django routes detailview django-rest-framework

5
推荐指数
2
解决办法
3152
查看次数