Django: как контролировать доступ пользователей к веб-контенту с ограниченным разрешением в день?

У меня есть сайт по ценообразованию онлайн с использованием django.

Теперь я хочу ограничить использование моего сайта не-VIP пользователями для получения цены. Для пользователей, не являющихся vip-пользователями, после входа в систему они могут использовать мой сайт для получения цены только 3 раза в день. Если они нажмут кнопку "получить цену" в четвертый раз в течение дня, должно появиться предупреждающее сообщение, показывающее "не-вип пользователи могут проверять цену только 3 раза в день"

Можем ли мы сделать это непосредственно во фронтенде, используя javascripts?

Вы можете создать модель, которая записывает, какой пользователь получил цену и когда:

class Prize(models.Model):
   user = models.ForeignKey(User, on_delete=models.PROTECT)
   creation_date = models.DateTimeField(auto_now_add=True)
   # Other fields

Когда пользователь нажимает "получить цену", вы можете проверить в бэкенде, получил ли он уже 3 цены в этот день, с помощью простого запроса, например:

can_get_price = Price.objects.filter(creation_date__gte=datetime.now()-timedelta(days=1)).count() < 3

В противном случае, если вы хотите использовать только фронтенд, вы можете кэшировать даты, в которые были получены призы. Однако этот метод легко взломать, и он не работает с несколькими компьютерами/платформами.

Вернуться на верх