我搜索了一下,找不到一个像样的解决方案。我想计算一个石墨烯查询的唯一命中数。前端是react + apollo,如果有关系的话。有什么建议吗?
让我澄清这个问题;我想计算石墨烯查询/端点(graphql;而不是db)的唯一命中数(ip和用户代理等)。
发布于 2020-09-15 15:51:38
如果我没理解错的话,你想要计算数据库的唯一命中率。我认为对你来说最好的解决方案,应该是使用Django Debug Middleware。如果正确添加了Debug Middleware,则需要在查询中添加:
_debug {
sql {
rawSql
}
}之后,您在_debug部分,您将清除SQL query to DB。
发布于 2022-02-25 13:17:38
您可以利用DjangoObjectType提供的get_node函数。我假设您已经使用DjangoObjectType来定义节点,并且YourCustomModel有一个名为view_count的字段。
你可以这样做:
from graphene_django import DjangoObjectType
class YourCustomNode(DjangoObjectType):
class Meta:
model = YourCustomModel
interfaces = (graphene.relay.Node,)
filter_fields = {
...
}
@classmethod
def get_node(cls, info, id):
queryset = cls.get_queryset(cls._meta.model.objects, info)
try:
obj = YourCustomModel.objects.get(id=id)
obj.view_count += 1
obj.save(update_fields=['view_count', ])
return queryset.get(pk=id)
except cls._meta.model.DoesNotExist:
return Nonehttps://stackoverflow.com/questions/63857997
复制相似问题