django - Django RESTApi 使用 ForeignKey 作为过滤器仍然会产生错误
问题描述
我想我更接近我的 API 问题,但我仍然收到以下错误:
TypeError: Field 'id' expected a number but got <built-in function id>.
模型:
from django.contrib.auth.models import User
class Todos(models.Model):
owner = models.ForeignKey(User, on_delete=models.CASCADE)
name = models.CharField(max_length=20, default="")
text = models.TextField(max_length=450, default="")
done = models.BooleanField(default=False)
序列化器:
class TodosSerializer(serializers.ModelSerializer):
class Meta:
model = Todos
fields = ("id", "owner", "name", "text", "done")
看法:
class TodosView(viewsets.ModelViewSet):
queryset = Todos.objects.filter(owner__id=id)
serializer_class = TodosSerializer
网址:
router = routers.DefaultRouter()
router.register("todos/<int:id>", views.TodosView)
urlpatterns = [path("", include(router.urls))]
我想为单个用户获取所有待办事项。我在这里做错了什么?
编辑:
queryset = Todos.objects.filter(owner__id=1)
这实际上不会产生错误。我的 URL 似乎有些不对劲:
http://localhost:8000/todos/%3Cint:id%3E/
解决方案
推荐阅读
- reactjs - ReactJS 路由 onEnter 替换问题
- discord - 机器人在字符串中只说一个单词
- mysql - 从 mysql 复制到 Tarantool 时出现此错误,这些是复制器日志
- parsing - 删除文件路径并使用文件编号在绘图时执行一些计算
- r - 取消嵌套时将元素名称添加到单独的列中
- python - Matplotlib Animation FuncAnimation - 标题和副标题将被移动
- spring-boot - Spring Boot 批处理 JUnit 测试
- python - 如何在谷歌 colab 中获取 prototxt?
- reactjs - React 应用程序中空间复杂性的后果
- opencv - opencv aruco 模块在 AMD 处理器上崩溃,但在 Intel 处理器上运行