'Check whether self can receive a vouch from voucher.'

def is_vouchable(self, voucher):

    if (voucher and (not voucher.can_vouch)):
        return False
    if (self.vouches_received.all().count() >= settings.VOUCH_COUNT_LIMIT):
        return False
    vouch_query = self.vouches_received.filter(voucher=voucher)
    if (voucher and vouch_query.exists()):
        return False
    return True
