2012-04-22 41 views
2

如何才能讓tweepy返回實際的推文,我的意思是它應該以人類可讀格式顯示推文?在Tweepy中以可讀格式顯示推文

我不希望它返回的鳴叫是這樣的:

<tweepy.models.Status object at 0x95F1ABPo> 

代碼

def tweetstream(request): 
     consumer_key="" 
     consumer_secret="" 
     access_token="" 
     access_token_secret="" 
     auth=tweepy.OAuthHandler(consumer_key, consumer_secret) 
     auth.set_access_token(access_token, access_token_secret) 
     api=tweepy.API(auth) 
     statuses=Cursor(api.list_timeline, owner='', slug='').pages() 
     for status in statuses: 
      print status 
      return render_to_response('dash.html',{'statuses': statuses},context_instance=RequestContext(request)) 

回答

1

tweepy.models.Status就是一個類。它可能包含可用於訪問推文內容的字段。例如,嘗試status.text

+0

status.text不工作。 – picomon 2012-04-23 08:48:35

0

訪問包含鳴叫實際變量(例如{{status.text}}),或在您的狀態模型定義的Unicode方法,像這樣:

class Status(models.Model): 
    def __unicode__(self): 
     return self.text 

這是假設的狀態是Django模型。

+0

狀態不是我的django應用程序中的模型。它來自tweepy的模型。我怎麼去解決這個問題?我的意思是我應該直接在tweepy的模型中輸入它嗎? – picomon 2012-04-23 08:48:03

1

API調用返回調用的JSON。 Tweepy將其解析爲自己的模型,即Status。您可以獲取不同的推文參數,並將其從此狀態模型呈現到django模板中。

將整個「狀態」作爲上下文傳遞給django模板,然後在for循環中運行它們,並且可以在其中顯示用於顯示推文「statuses.text」的內容。

您可以使用twitter的標準模板,並將您的推文呈現或編碼爲您自己的html,並根據需要在其中顯示推文。

Views.py:

def tweetstream(request): 
     consumer_key="" 
     consumer_secret="" 
     access_token="" 
     access_token_secret="" 
     auth=tweepy.OAuthHandler(consumer_key, consumer_secret) 
     auth.set_access_token(access_token, access_token_secret) 
     api=tweepy.API(auth) 
     statuses=Cursor(api.list_timeline, owner='', slug='').pages() 
     context = {'statuses':statuses} 
     return render(request, 'dash.html', context) 

渲染在Django模板:

{% for tweets in statuses %} 
tweets.text 
{% endfor %} 

https://dev.twitter.com/web/embedded-tweets