2017-06-25 11 views
0

うーん、これは簡単なことかもしれませんが、複雑なものかもしれません。私はDjangoフレームワーク内でSEOのフレンドリーなTwitterフィードを設定することに問題があります。次のように重い物を持ち上げるのほとんどは、テンプレートタグblog_tags.pyファイルとして行われます:テキストをHTMLに構文解析する

@register.inclusion_tag('blog/frame/twitter.html') 
def show_latest_tweets(): 
    tweets = [] 

    try: 
     """The import error is here to catch any server migrations were the tweepy package not to be found in site_packages""" 
     import tweepy 
    except: 
     tweets.append({'status': 'There was a problem referencing our tweets. Please inform our webmaster.', 'relative_date': 'Just now'}) 
     raise ImportError 

    # OAuth process, using the keys and tokens 
    auth = tweepy.OAuthHandler(settings.EOS_TWITTER_FEED['EOS_FEED_TWITTER_KEY'], settings.EOS_TWITTER_FEED['EOS_FEED_TWITTER_SECRET']) 
    auth.set_access_token(settings.EOS_TWITTER_FEED['EOS_FEED_TWITTER_ACCESS_TOKEN'], settings.EOS_TWITTER_FEED['EOS_FEED_TWITTER_ACCESS_TOKEN_SECRET']) 

    # Creation of the actual interface, using authentication 
    api = tweepy.API(auth) 

    user = 'FFXVEN' 

    avatar_url = api.get_user(screen_name='@'+user).profile_image_url 

    i = 0 
    for tweet in tweepy.Cursor(api.user_timeline, screen_name='@'+user).items(): 
     if 'RT' not in tweet.text: 
      if i <= 4: 
       status = tweet.text 
       hashtags = [word for word in status.split() if word[0] == "#"] 

       #Find hashtags in tweet and create a string to contain <a href="https://twitter.com/search?q=" + hashtag>#hashtag</a> 
       for hashtag in hashtags: 
        if hashtag.endswith((',',';','.')): 
         hashtag = hashtag[:-1] 

        status = status.replace(hashtag, '<a href="https://twitter.com/search?q={}">{}</a>'.format(hashtag[1:], hashtag)) 

       relative_date = tweet.created_at 
       tweets.append({'user': user, 'avatar_url': avatar_url, 'status': html.unescape(status), 'relative_date': relative_date}) 
       i += 1 
      else: 
       break 
     else: 
      continue 

    return { "tweets": tweets } 

すべてがうまく機能 - それは私が望むすべてを返し、現在はそれがハッシュタグを取り除き、Twitterの友好ハッシュタグに置き換えます。しかし、このクライアント側は何が表示されます。

enter image description here

私はそれは、クライアント側のHTML要素はHTML要素としてレンダリングされ、テキストを事前にフォーマットされていないことをどのように動作するかにこだわっていますか?

+0

安全なテンプレートフィルタを試してみてくださいあなたは

タグに表示{{tweet.status}}変数でつぶやきループでつぶやきため – Exprator

+0

標準を表示しているテンプレートを示しています。 –

答えて

3
{{ tweet.status|safe } 

+0

恐ろしい - これを試してみます。 –

関連する問題