DjangoにHEADメソッドを投げてもGETの処理が走ってしまう
以前勤めていた会社で管理していたポータルサイトで、クローラーがHEADでページを要求しているのにDBの負荷が上がって不思議に思い調べたらこのような実装になっていた。
その時調べたときはこの記事をみただけで(バージョンが違うけどどうせ処理は同じでしょ)と思い終わりにしていたけど、今回はソースも確認する。
Version:2.2.6
def view(request, *args, **kwargs): self = cls(**initkwargs) if hasattr(self, 'get') and not hasattr(self, 'head'): self.head = self.get # 省略 return self.dispatch(request, *args, **kwargs)
https://github.com/django/django/blob/2.2.6/django/views/generic/base.py#L63