2
  1. Python ライブラリ 'feedparser' を使用して Facebook の更新フィードを読んでいます。
  2. Django テンプレートのエントリのコレクションをループして、結果を表示します。
  3. 更新されたフィールドは、私がよく知らないフォーマットの大きな長い文字列で返されます。

    2009 年 12 月 1 日火曜日 23:55:52 +0000

どうやって...

A) Django フィルターを使用して、テンプレートの for ループで日時を消去します。

...また...

B)日付を解析し、ビューで更新された日付をフォーマットし、ビューで反復される前に、エントリのコレクションの日付を本質的にクリーンアップします。

注: 両方のアプローチを試しました。Django の日付フィルターはそれを認識せず、文字列を解析しようとした iso8601 ライブラリも認識しませんでした。

誰もこれについて経験がありますか?ご協力いただきありがとうございます!

アップデート:

Django テンプレートで feedparser の updated_pa​​rsed 値を使用すると、うまく機能しませんでした。しかし、まさにこのためのフィルターの Django スニペットが既に存在します! **

ジャンゴ スニペット: http://www.djangosnippets.org/snippets/1595/

4

2 に答える 2

4

entries[i].updated_parsedの代わりに をentries[i].updated使用するとfeedparser、解析された 9 タプルが返されます。(ドキュメンテーション)

次に、datetimeオブジェクトを作成して Django に渡すか、自分で文字列にフォーマットします。

ここに同様の質問があります。

于 2009-12-28T03:10:59.493 に答える
2

これはうまくいきましたが、私の最終的な解決策はそうではありませんでした。

このソリューションは、Facebook から取得したフィード エントリ コレクションを繰り返し処理します。次に、日時を解析し、更新されたプロパティをその新しい日時に設定します。(また、+0000 を無視します)

for entry in feed.entries:
        entry.updated = datetime.strptime(entry.updated, "%a, %d %b %Y %H:%M:%S +0000")

エントリ コレクションがテンプレートに返され、Django の「日付」フィルタを使用して日付をフォーマットできるようになりました。

于 2009-12-28T03:14:18.100 に答える