0
私はrssフィードからコンテンツを作成するためにフィードパーサーを使用しています。RSSフィードから日付を取得してDjangoモデルに設定できないのはなぜですか?
import feedparser
def parse_rss(rss_url):
return feedparser.parse(rss_url)
def generate_content_from_feed(feed):
parsed_feed = parse_rss(feed.rss_url)
for item in parsed_feed['items']:
if not Content.objects.filter(link=item['link']).exists():
content = Content.objects.create(
title=item['title'],
link=item['link'],
description=item['description'],
pub_date=item['published'],
category=item['category'],
feed=feed,
)
if item['enclosure']:
content.media_url = item['enclosure']['url']
content.media_type = item['enclosure']['type']
content.save()
私はそれをテストできないので、上記のコードが動作しているかどうかは完全にはわかりません。私models.pyで
、私はこれらの2つのモデルがあります:
フィードは、そのフィードからのコンテンツが生成され、中のコンテンツのオブジェクトとして保存されて保存され、あなたが思っている場合、class Feed(models.Model):
rss_url = models.URLField()
def save(self, *args, **kwargs):
super(Feed, self).save(*args, **kwargs)
generate_content_from_feed(self) # Generating the content
class Content(models.Model):
title = models.CharField(max_length=500)
link = models.URLField()
description = models.TextField()
pub_date = models.DateTimeField(default=None)
category = models.CharField(max_length=500, blank=True)
media_url = models.URLField(blank=True) # Attached media file url
media_type = models.CharField(max_length=50, blank=True)
feed = models.ForeignKey(Feed, related_name='content_feed')
私のデータベース。私がやろうとしていることはそれ以上です。フィードを保存すると、次のようなエラーが表示されます。
ValidationError at /admin/myapp/feed/add/
[u"'Fri, 08 Apr 2016 14:51:02 +0000' value has an invalid format. It must be in YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] format."]
この問題を解決するにはどうすればよいですか?また、私は専門家ではない、私のgenerate_content_from_feedメソッドに問題があるかどうか誰にでも教えてもらえますか?どうもありがとう。
日付番号に
Apr
を変換しようと、なぜそれをテストすることができないのですか?コードにデバッグし、保存する前に変数の内容を正確に確認することをお勧めします。 – Wtower