自动在序列化器上的过滤器内设置 id
我正在尝试获取序列化中特定模型的总数。
"results": [
{
"event_id": 24,
"unique_visitors": 1,
"returned_visitors": 2
},
]
我在 unique_visitors
和 returned_visitors
中检索的两个值来自另一个模块。 我在 serializer.py
中做了什么:
unique_visitors = EventCounter.objects.filter(is_unique=True).filter(event_id=24).count()
returned_visitors = EventCounter.objects.filter(is_unique=False).filter(event_id=24).count()
def get_unique_visitors(self, obj):
return self.unique_visitors
def get_returned_visitors(self, obj):
return self.returned_visitors
我尝试做的是自动在 filter(event_id=24)
中包含当前对象的 id。
你能帮我吗?
I'm trying to get the total count from specific Model inside a Serialization.
"results": [
{
"event_id": 24,
"unique_visitors": 1,
"returned_visitors": 2
},
]
The two value that i retrive in unique_visitors
and returned_visitors
come from one other module.
What i did in serializer.py
:
unique_visitors = EventCounter.objects.filter(is_unique=True).filter(event_id=24).count()
returned_visitors = EventCounter.objects.filter(is_unique=False).filter(event_id=24).count()
def get_unique_visitors(self, obj):
return self.unique_visitors
def get_returned_visitors(self, obj):
return self.returned_visitors
What i try to do is to have inside the filter(event_id=24)
the id of current object automatically.
Can you help me please?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
因此,要获得所需的结果,您必须使用
SerializerMethodField()
。这是一个只读字段。它通过调用其附加的序列化器类上的方法来获取其值。
例如,
SerializerMethodField
还接受一个名为method_name
的可选参数,您可以添加它来更改该字段所附加到的方法的名称。如果未包含,则默认为
get_
。有关更多信息,请查看文档。
So to achieve the desired result, you have to use
SerializerMethodField()
.This is a read-only field. It gets its value by calling a method on the serializer class it is attached to.
For example
SerializerMethodField
also accepts one optional param calledmethod_name
you can add it to change the name of the method that the field is attached to.If not included this defaults to
get_<field_name>
.Check the documentation for more info.