Django get_object_or_create()无法在部署服务器上运行

时间:2010-09-25 15:40:48

标签: python django

我遇到了get_or_create调用的主要问题。我在本地工作非常好,并且相同的脚本在另一个站点上在线工作。有谁知道发生了什么?

我得到“IntegrityError:(1062,”重复条目'2147483647'用于键'PRIMARY'“)”每当我运行脚本时......

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)

1 个答案:

答案 0 :(得分:2)

我的猜测是你受此影响:How do I deal with this race condition in django?