import datetime
mytime = datetime.datetime.now().time() # TimeField - инстанс datetime.time
myint = 10 # IntegerField - инстанс int
result = (
datetime.datetime.combine(datetime.date(1,1,1), mytime) + datetime.timedelta(minutes=myint)
).time()
print(mytime, result)
# 20:00:00.193440 20:10:00.193440
Я не понял от кого наследуется context в get_context_data
и зачем вызывается эта функция с передачей словаря,
Так же в документации это было описано с классом DetailView, но с классом ListView это так же работает, тогда какое отличие этих классов
Я предполагаю, что можно модели пользователя добавить численный атрибут, который будет уменьшаться с созданием новых объектов, но нужно еще, чтобы этот счетчик автоматически обновлялся каждые 24 часа.
Еще момент, что если пользователь в день опубликует один объект, то у него останется еще два, а из этого следует, что при возобновлении счетчика на следующий день у него будет уже 5 записей. Этот момент тоже нужно учесть.
if SomeModel.objects.filter(
author=request.user,
timestamp__gte=timezone.now()-datetime.timedelta(days=1),
).count() < LIMIT:
# allow create
else:
# decline create
master_promo_count = models.SmallIntegerField(default=0, verbose_name='Количество дней акции',)
# СЧЕТЧИК АКЦИИ
def promo(self, *args, **kwargs):
self.master_promo_count = (self.master_date_end - datetime.today().date()).days
return self.master_promo_count
@property
def master_promo_count(self):
return (self.master_date_end - datetime.today().date()).days
def master_promo_count_day(self):
if self.master_promo_count == 1:
return f'день'
elif self.master_promo_count == 2:
return f'дня'
else:
return f'дней'
<span class="red-text bb f18">{{ obj.promo }} {{ obj.master_promo_count_day }}</span></div>
А так я удаляю старые миграции, делаю новые, makemigrations, и применяю migrate
migrate <app_label> <migration_name>