Я хочу сделать следующее: каждый раз, когда пользователь входит в статью, он увеличивает посещение на +1, но только при первом входе пользователя в систему, поэтому я должен сохранить тот факт, что пользователь уже вошел встраница в каком-то месте.Но я не использую аутентификацию или что-то подобное.
Я знаю, что могу использовать javascript для хранения в LocalStorage, но я все еще не знаю, как работать с APIS в серверной части.
Какой самый простой способ сделать это на бэкэнде?
В настоящее время функция, которая увеличивает это, как показано ниже.ПРИМЕЧАНИЕ: я создаю новый объект вместо того, чтобы использовать что-то вроде «instance.visits + = 1», потому что мне нужно сохранять дату каждого посещения, чтобы отфильтровать сообщения с большим количеством посещений за определенный период времени, и это был единственный способЯ понял.
class ArticlePage(Page):
# ....
def serve(self, request, *args, **kwargs):
request.is_preview = getattr(request, 'is_preview', False)
self.views.create(date=datetime.datetime.now())
self.save()
print(self.views.all().count())
return TemplateResponse(
request,
self.get_template(request, *args, **kwargs),
self.get_context(request, *args, **kwargs)
)
class ArticlePageViews(models.Model):
article = models.ForeignKey(
ArticlePage,
on_delete=models.CASCADE,
related_name='views'
)
date = models.DateTimeField()
def __str__(self):
return f'{self.date}'