Как создать и сохранить неизвестное количество переменных в Django Model?

Я работаю с twitter api через tweepy и не знаю, как сохранить неизвестное количество медиа-урлов в объект модели.

В разделе СМИ я застрял. Некоторые твиты будут содержать ссылки на медиа, а некоторые нет, а некоторые могут содержать множество ссылок на медиа.

Как создать неизвестное количество переменных media url, а затем как добавить это в update_or_create?

Я ценю всю вашу помощь... пытаюсь разобраться в этом уже некоторое время.

    user = api.get_user(screen_name=team)
        timeline = tweepy.Cursor(
            api.user_timeline, id=team, exclude_replies=True,
            include_rts=False).items(20)

    handle = user['screen_name']
    location = user['location']
    description = user['description']

    for tweet in timeline:
        tweet_id = tweet['id']
        date = tweet['created_at']
        content = tweet['text']

    `This is where I am stuck`

        if 'media' in tweet.entities:
            for media in tweet.extended_entities.media:
                url = media['media_url']

    Tweets.objects.update_or_create(
        tweet_id=tweet_id, defaults={
            'handle': handle,
            'tweet_id': tweet_id,
            'location': location,
            'description': description,
            'date': date,
            'content': content,
            'url': url}
            )
    

Я вижу два возможных варианта:

a) если вы используете базу данных PostgreSQL, вы можете использовать ArrrayField (https://docs.djangoproject.com/en/3.2/ref/contrib/postgres/fields/) для создания массива строк, представляющих урлы

b) вы можете использовать вторичную таблицу, которая имеет отношение к этой, и поместить туда урлы

Иногда я использую первый вариант (но он ограничен Postgres), а иногда второй (который действительно имеет больше смысла в базе данных отношений)

Вернуться на верх