Парсер для django записей

Написал парсер, который берет данные фильма с сайта megogo:

def get_trailer(link):
    source = requests.get(link).text
    soup = bs4.BeautifulSoup(source, 'html.parser')

    parser_title = soup.find('h1', {'class': 'video-title'}).text.strip()
    parser_descriptions = soup.findAll('div', {'class': 'show-more'})
    parser_description = []

    for desc in parser_descriptions:
        for i in desc.findAll('p'):
            parser_description.append(str(i))

    parser_genres = soup.findAll('a', {'class': 'video-genre'})
    g = []
    for genre in parser_genres:
        g.append(genre.text)

    parser_country = soup.find('a', {'class': 'video-country'}).text
    parser_poster = soup.find('div', {'class': 'thumb'})
    for image in parser_poster:
        if isinstance(image, bs4.Tag):
            image['src']

    parser_year = soup.find('span', {'class': 'video-year'}).text
    parser_running_time = soup.find('span', {'itemprop': 'duration'}).text
    parser_age_rating = soup.find('span', {'class': 'video-age'}).text
    parser_quality = soup.find('span', {'class': 'video-quality'}).text
    parser_url = soup.find('div', {'class': 'video-title-original'}).text.strip()
    parser_url_list = parser_url.split()
    parser_slug = '_'.join(parser_url_list)

Как мне правильно вызвать функцию в методе save, что бы заполнить поля по типу self.title = parser_title? models.py:

class Trailer(models.Model):

    megogo_url = models.URLField('Ссылка на фильм megogo')
    title = models.CharField(max_length=100, blank=True)
    description = models.TextField(max_length=1500, blank=True)
    genre = models.ManyToManyField(Genre, verbose_name='Жанры', blank=True)
    country = models.ManyToManyField(Country, verbose_name='Страны', blank=True)
    poster = models.URLField(blank=True)
    year = models.SmallIntegerField(blank=True)
    running_time = models.CharField(max_length=4, blank=True)
    age_rating = models.CharField(max_length=3, blank=True)
    quality = models.CharField(max_length=10, blank=True)
    url = models.SlugField(unique=True, blank=True)

    def save(self, *args, **kwargs):
        get_trailer(self.megogo_url)

То есть, могу ли обращаться к локальным переменным функции? Или прописать логику парсера в методе save? Насколько это будет правильно?:

def save(self, *args, **kwargs):
    source = requests.get(self.megogo_url).text
    soup = bs4.BeautifulSoup(source, 'html.parser')

    self.title = soup.find('h1', {'class': 'video-title'}).text.strip()
    return super(Trailer, self).save(*args, **kwargs)

Ответы (0 шт):