【发布时间】:2021-04-23 05:40:09
【问题描述】:
这是我的模型:
from django.contrib.auth.models import User
class Task(models.Model):
owner = models.ForeignKey(User, on_delete=models.CASCADE, null=True)
title = models.CharField(max_length=200)
complete = models.BooleanField(default=False)
created = models.DateTimeField(auto_now_add=True)
def __str__(self):
return self.title
通过以下视图和 URL 模式,我得到了我的待办事项:
class TaskView(viewsets.ModelViewSet):
queryset = Task.objects.all() ## get all todos
serializer_class = TaskSerializer
router.register("todos", views.TaskView)
但是,我想要特定所有者的待办事项。我试过这个:
class TaskView(viewsets.ModelViewSet):
queryset = Task.objects.filter(id=id)
serializer_class = TaskSerializer
router.register("todos/<int:id>", views.TaskView)
这会导致以下错误:
TypeError: Field 'id' expected a number but got <built-in function id>.
使用get 而不是filter 会导致同样的问题。为什么会出现这个错误,我该如何解决?
【问题讨论】:
标签: django django-models django-rest-framework