def METHOD_NAME(self, target, alert=None):
    if not alert:
        try:
            alert = self.fetch_alert(target.name)
        except HTTPError:
            raise Exception('Unable to retrieve alert information from broker')
    if alert is not None:
        alert_name = alert['name']
        alert_link = alert.get('per_alert', {})['link']
        lc_url = f'{BASE_BROKER_URL}/alerts/alert/{alert_name}/lightcurve.csv'
        alert_url = f'{BASE_BROKER_URL}/{alert_link}'
    elif target:
        lc_url = f'{BASE_BROKER_URL}/{target.name}/lightcurve.csv'
        alert_url = f'{BASE_BROKER_URL}/alerts/alert/{target.name}/'
    else:
        return
    response = requests.get(lc_url)
    response.raise_for_status()
    html_data = response.text.split('\n')
    for entry in html_data[2:]:
        phot_data = entry.split(',')
        if len(phot_data) == 3:
            if 'untrusted' not in phot_data[2] and 'null' not in phot_data[2]:
                jd = Time(float(phot_data[1]), format='jd', scale='utc')
                jd.to_datetime(timezone=TimezoneInfo())
                value = {
                    'magnitude': float(phot_data[2]),
                    'filter': 'G'
                }
                rd, _ = ReducedDatum.objects.get_or_create(
                    timestamp=jd.to_datetime(timezone=TimezoneInfo()),
                    value=value,
                    source_name=self.name,
                    source_location=alert_url,
                    data_type='photometry',
                    target=target)
                rd.save()
    return