私は単純なモデルクラスを持っています
class Talk(models.Model):
url = models.URLField()
user = models.ForeignKey(User)
category = models.ForeignKey(Category)
description = models.TextField(blank=True, max_length=500)
title = models.TextField(blank=True)
そして、送信された URL からデータを取得するために oembed API に接続します
def get_oembed_info(self):
params = {'url': self.url, 'format': 'json'}
fetch_url = 'http://api.embed.ly/1/oembed?%s' % urllib.urlencode(params)
result = urllib.urlopen(fetch_url).read()
result = json.loads(result)
KEYS = ['title', 'type', 'url', 'description', 'provider_url', 'provider_name', 'width', 'height', 'html', 'thumbnail_url', 'author_url']
for key in KEYS:
if result.has_key(key):
setattr(self, key, result[key])
def save(self):
self.get_oembed_info()
super(Talk, self).save()
管理者から新しいトークを追加しても問題ありませんが、後で同じトークを更新しようとしても何も変わりません。
また、この方法でデータを取得してDBに保存することもできます。
ありがとう