fix: счётчик просмотров без save
This commit is contained in:
@@ -3,7 +3,7 @@ import math
|
|||||||
|
|
||||||
from django.shortcuts import render, HttpResponseRedirect
|
from django.shortcuts import render, HttpResponseRedirect
|
||||||
from django.http import Http404, JsonResponse
|
from django.http import Http404, JsonResponse
|
||||||
from django.db.models import Count, Q
|
from django.db.models import Count, F, Q
|
||||||
from django.views.decorators.http import require_GET
|
from django.views.decorators.http import require_GET
|
||||||
# from datetime import datetime
|
# from datetime import datetime
|
||||||
from django.utils import timezone
|
from django.utils import timezone
|
||||||
@@ -197,8 +197,10 @@ def show_item(request,
|
|||||||
to_template["PAGE_OF_LIST"] = int(ppage)
|
to_template["PAGE_OF_LIST"] = int(ppage)
|
||||||
to_template["ITEMS_AFTER"] = q_items_after
|
to_template["ITEMS_AFTER"] = q_items_after
|
||||||
to_template["ITEMS_BEFORE"] = q_items_before
|
to_template["ITEMS_BEFORE"] = q_items_before
|
||||||
|
# Счётчик просмотров обновляем отдельно от `save()`, чтобы не запускать
|
||||||
|
# типографизацию, пересборку slug и автообновление `dtContentTimeStamp`.
|
||||||
|
TbContent.objects.filter(pk=q_item.pk).update(iContentHits=F("iContentHits") + 1)
|
||||||
q_item.iContentHits += 1
|
q_item.iContentHits += 1
|
||||||
q_item.save(update_fields=["iContentHits"])
|
|
||||||
return render(request, template, to_template)
|
return render(request, template, to_template)
|
||||||
except (ValueError, AttributeError, TbContent.DoesNotExist, TbContent.MultipleObjectsReturned):
|
except (ValueError, AttributeError, TbContent.DoesNotExist, TbContent.MultipleObjectsReturned):
|
||||||
raise Http404("Контента с таким id не существует")
|
raise Http404("Контента с таким id не существует")
|
||||||
|
|||||||
Reference in New Issue
Block a user