django - TypeError:get_object() 采用 1 个位置参数,但给出了 2 个 [18/May/2021 18:27:12] "GET /api/Oxyegn/ HTTP/1.1" 500 94676
问题描述
我想要做的是我提供选择字段,当我将该选择字段作为参数传递给 url 时,我试图获取所有帖子,例如:氧气、等离子等它们在我的选择字段中,用户必须在发布期间选择邮政。
我想获得 json 格式,每当我们向 api 发出请求时都会获得这种格式,并且我希望该信息基于我给出的选择字段,但出现错误。
休息 API 视图
class PostRestApi(APIView):
def get_object(self, **kwargs):
try:
return Post.objects.get(help_type=kwargs.get('help_type'))
except Post.DoesNotExist:
raise Http404
def get(self, request, **kwargs):
posts = self.get_object(kwargs.get('help_type'))
serializer = PostSerializer(posts)
return Response(serializer.data)
> SERIALIZERS CLASS
class PostSerializer(serializers.Serializer):
title = serializers.CharField(max_length = 100)
content = serializers.CharField()
date = serializers.DateTimeField(default=timezone.now)
help_type = serializers.CharField()
My Post Model
CHOICES = (
("1", "Plasma"),
("2", "Oxygen"),
("3", "Bed"),
("4", "Emergency")
)
class Post(models.Model):
title = models.CharField(max_length = 100)
content = models.TextField()
date = models.DateTimeField(default=timezone.now)
author = models.ForeignKey(User, on_delete=models.CASCADE)
help_type = models.CharField(max_length=300, choices = CHOICES, null=True)
url
path('api/<str:help_type>/', PostRestApi.as_view(), name='post-api')
解决方案
您的方法get_object
只接受除位置参数之外的关键字参数self
,因此而不是:
posts = self.get_object(kwargs.get('help_type'))
你应该写:
posts = self.get_object(help_type=kwargs.get('help_type'))
推荐阅读
- sql - 在 Visual Studio Code 中运行 DB2 查询
- javascript - 发生页面溢出时调整子菜单大小
- c# - 更新 DataGrid 单元格仅适用于根对象属性
- datatable - 如何在不更新“搜索”输入字段的情况下手动搜索数据表
- laravel - 使用 FFmpeg 转换和压缩视频
- python - 使用参数进行 KS 测试的问题并了解结果
- microsoft-graph-api - 使用 microsoft graph api 代表企业中的用户阅读邮件
- javascript - jsPDF:在node.js上使用addimage时出现黑色矩形框
- prometheus - Prometheus 客户端如何识别指标类型?
- r - Win10 上的 R 版本 3.5.1 无法正确创建向量