Cab*_*ose 2 django rest model-view-controller django-rest-framework
我的问题归结为Django中REST和Views的最佳实践之一.我正在为我当前的项目重新编写REST api,其中包括稍微修改我们的视图(传统MVC中的Controller).目前,所有内容都通过POST请求进行隧道传输,即使是简单的GET也是如此.
从休息的角度来看,应该返回所有作业的列表,其中包含以下URL:
API /职位/
应该检索单个作业(ID为1):
API /职位/ 1
最后,这应该返回作为工作1一部分的所有任务
API /职位/ 1 /任务/
这是我用于新系统的理念,但我对实现感到不满.如果这两个都在Django中获得自己的View,或者一个视图应该同时处理它们.
目前我正在使用一个View,其中所有相关的URL都路由到它,这样的逻辑;
def get(self, request, id=None, task_id=None):
if id is None:
return Job.objects.all() # This will be the LIST'
if task_id is not None:
return Job.objects.get(id=id).task_set.all()
return Job.objects.get(id=id)
Run Code Online (Sandbox Code Playgroud)
如果增加更多复杂性,这似乎会导致非常复杂和冗长的视图.如果我想为其他资源的任务逻辑添加类似的逻辑,我会继续添加到视图中,还是应该每个都获得自己的View?
| 归档时间: |
|
| 查看次数: |
39 次 |
| 最近记录: |