我在访问横幅列表时使用BannerListAPIView
:
class BannerListAPIView(ListAPIView):
serializer_class = WebsiteBannerSerializer
permission_classes = []
queryset = WebsiteBanner.objects.all()
但我想在访问此ListAPIView
时添加逻辑,例如我想记录remote_ip
。
访问此ListAPIView
时如何添加逻辑?
修改
我只是想知道在用户访问ListAPIView
时我可以在哪里添加自定义逻辑。
答案 0 :(得分:0)
你可以像这样覆盖你班级的list()
函数:
class BannerListAPIView(ListAPIView):
serializer_class = WebsiteBannerSerializer
permission_classes = []
queryset = WebsiteBanner.objects.all()
def list(self, *args, **kwargs):
# YOUR LOGIC
return super(BannerListAPIView, self).list(*args, **kwargs)
答案 1 :(得分:0)
如果您想为应用程序范围内的每个请求记录IP,您可能需要考虑使用[中间件]而不是在视图级别执行此操作,这可能被视为不良做法。