【发布时间】:2015-03-22 23:03:40
【问题描述】:
我有一个使用模型序列化器的基于模型的基本视图:
class ActionItemTextSerializer(serializers.ModelSerializer):
assignee_name = serializers.CharField(source='get_assignee_name')
class Meta:
model = ActionItem
fields = ('id', 'created_by', 'created_date', 'project', 'portfolio', 'name', 'description', 'parent', 'priority', 'status', 'assignee', 'assignee_name', 'wf_get_actions')
#depth = 1
class ActionItemViewSet(viewsets.ModelViewSet):
queryset = ActionItem.objects.all()
serializer_class = ActionItemTextSerializer
因此,当我转到 /actionitems/ 时,我会得到一份清单,当我转到 /actionitems/5/ 时,我会得到个别行动项目的详细信息。
我的操作项可以具有与之关联的特定操作 - 我如何扩展所有这些以具有以下内容:
GET /actionitems/5/assign 并获取 id=5 但带有其他数据的操作项的模型视图(我想我可以通过视图的序列化程序添加它)
PUT /actionitems/5/assign 并触发一个视图,该视图将使用 PUT 数据更新模型数据,并根据传递给它的操作键('assign')对其进行额外更改?
我能否以某种方式扩展 ModelViewSet,以便它可以根据 /actionitems/5/ 之后的参数返回不同的序列化程序并在 PUT/POST 等时执行不同的操作?或者我应该在这里使用不同的方法。
【问题讨论】:
标签: rest django-views django-rest-framework