Как ограничить количество созданных объектов пользователем в день?
Здравствуйте, в своем проекте я хочу реализовать для пользователей некоторые ограничения, заключающиеся в том, чтобы пользователь не мог добавить больше определенного количества объектов в день. Нужно еще сделать так, чтобы помимо дневного ограничения между созданием объектов стоял временной интервал в какое-либо количество часов.
Я предполагаю, что можно модели пользователя добавить численный атрибут, который будет уменьшаться с созданием новых объектов, но нужно еще, чтобы этот счетчик автоматически обновлялся каждые 24 часа.
Еще момент, что если пользователь в день опубликует один объект, то у него останется еще два, а из этого следует, что при возобновлении счетчика на следующий день у него будет уже 5 записей. Этот момент тоже нужно учесть.
Я предполагаю, что можно модели пользователя добавить численный атрибут, который будет уменьшаться с созданием новых объектов, но нужно еще, чтобы этот счетчик автоматически обновлялся каждые 24 часа.
Еще момент, что если пользователь в день опубликует один объект, то у него останется еще два, а из этого следует, что при возобновлении счетчика на следующий день у него будет уже 5 записей. Этот момент тоже нужно учесть.
1. Смотришь в БД на последний объект, созданный этим пользователем. Он должен быть создан не раньше, чем X часов назад, либо не существует ни одного объекта — Model.objects.filter(user_id=...).latest('created_at')
2. Смотришь в БД на объекты, которые созданы сегодня. Их должно быть меньше Y — Model.objects.filter(user_id=..., created_at__date=date.today()).count()
Если оба условия выполняются — даёшь создать объект. В чём сложность?