4 django django-rest-framework
我已经创建了一个小任务应用程序并定义了一些终点,如所有任务,到期任务,完成任务.
这是我的url.py
#Define API Routes
router = routers.DefaultRouter()
#router = routers.SimpleRouter()
router.register(r'task', views.TaskViewSet)
router.register(r'due_task', views.DueTaskViewSet)
router.register(r'completed_task', views.CompletedTaskViewSet)
urlpatterns = [
# Examples:
# url(r'^$', 'TaskAPI.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),
url(r'^',include(router.urls)),
url(r'^admin/', include(admin.site.urls)),
]
Run Code Online (Sandbox Code Playgroud)
Serializers.py
class TaskSerializer(serializers.ModelSerializer):
class Meta:
model = Task
fields = ('id','task_name','task_desc','completed','date_created')
Run Code Online (Sandbox Code Playgroud)
View.py
class TaskViewSet(viewsets.ModelViewSet):
queryset = Task.objects.all().order_by('-date_created')
serializer_class = TaskSerializer
class DueTaskViewSet(viewsets.ModelViewSet):
queryset = Task.objects.all().order_by('-date_created').filter(completed=False)
serializer_class = TaskSerializer
class CompletedTaskViewSet(viewsets.ModelViewSet):
queryset = Task.objects.all().order_by('-date_created').filter(completed=True)
serializer_class = TaskSerializer
Run Code Online (Sandbox Code Playgroud)
model.py
class Task(models.Model):
task_name = models.CharField(max_length=20)
task_desc = models.TextField(max_length=200)
completed = models.BooleanField(default=False)
date_created = models.DateTimeField(auto_now=True)
Run Code Online (Sandbox Code Playgroud)
当我运行服务器并点击127.0.0.1:8080时,API路由窗口将打开,所有端点都指向同一个链接.
请告诉我这里出了什么问题.谢谢
小智 16
您可能需要base_name在register()方法中指定可选参数.它通常是自动生成的.但是,相同的序列化程序和相对类似的查询集可能是您获得相同端点的原因.我想你想要这样的东西.
router.register(r'task', views.TaskViewSet, 'task')
router.register(r'due_task', views.DueTaskViewSet, 'due_task')
router.register(r'completed_task', views.CompletedTaskViewSet, 'completed_task')
Run Code Online (Sandbox Code Playgroud)
根据文件:
如果未设置,将根据
queryset视图集的属性自动生成基本名称(如果有).请注意,如果视图集不包含queryset属性,则必须base_name在注册视图集时进行设置.
| 归档时间: |
|
| 查看次数: |
1100 次 |
| 最近记录: |