У меня есть следующий метод в одном из моих классов моделей. Он разработан, чтобы мои взгляды знали, что JournalEntry можно редактировать. Он должен возвращать true, если запись не старше 90 дней и не имеет каких-либо связанных LineItems, которые имеют значение в поле LineItems reconciled_date. Ie все связанные элементы LineItems должны иметь значение NULL в своем поле reconciled_date.
Метод работает, но выполняет итерации через элементы LineItems, что представляется очень неэффективным. Есть ли лучший способ?
Models.py
class JournalEntry(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.PROTECT, null=False, blank=False)
date = models.DateField(null=False, blank=False)
def can_edit(self):
"""Checks if logged user can edit"""
is_reconciled = 0
for lineitem in self.lineitem_set.all():
if lineitem.reconciliation_date != None:
is_reconciled = 1
if (datetime.date.today() < (self.date + datetime.timedelta(90))) and is_reconciled == 0:
return True
else:
return False
Спасибо