2010-09-25 4 views
0

Je rencontre des problèmes majeurs avec un appel get_or_create. Je le fais fonctionner localement très bien, et le même script fonctionne en ligne sur un autre site. Quelqu'un a-t-il une idée de ce qui se passe?Django get_object_or_create() ne fonctionne pas sur le serveur de déploiement

je reçois "IntegrityError: (1062, "entrée en double '2147483647' pour la touche «primaire")" à chaque fois que je lance le script ...

for tweet in TwitterSearchFeed.entries: 
    if tweet.id[0:3] == 'tag': 
     tweet_id = tweet.id.split(':')[2] # tweet.id[tweet.id.rindex(':')+1:] #tag:search.twitter.com,2005:10016544708 
     screen_name = tweet.author.split('(')[0].strip() 
     text = smart_unicode(tweet.title) 
     pub_time = time.strptime(tweet.published, "%Y-%m-%dT%H:%M:%SZ") #2010-01-01T22:20:55Z 
     pub_time = datetime.datetime.fromtimestamp(time.mktime(pub_time)) # UTC 
     name = tweet.author.split('(')[1].split(')')[0].strip() 

     # make sure tweet comes after 30 mins before kickoff 
     if pub_time > (game.kickoff - datetime.timedelta(minutes=30)): 

      # filter RTs 
      if not text[0:3] == "RT ": 

       # add or get tweet 
       tweet_dict = { 
        'twitter_id': tweet_id, 
        'pub_time': pub_time, 
        'text': text, 
        'name': name, 
        'username': screen_name, 
        'game': game, 
        'atthegame': atthegame 
        } 

       obj, created = Tweet.objects.get_or_create(twitter_id=tweet_id, defaults=tweet_dict) 

       if created: 
        output += "Tweet added - %s, %s, '%s'<br />" % (tweet_id, screen_name, text) 
       else: 
        output += "Tweet %s already exists<br />" % tweet_id 

    else: 
     output += "Tweet id error<br />" 

return HttpResponse(output) 

Répondre

Questions connexes