Как создать и сохранить неизвестное количество переменных в 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), а иногда второй (который действительно имеет больше смысла в базе данных отношений)