title: Getting a 'AttributeError at /login/authenticated', 'User' object has no attribute 'backend'
body: <p>I'm using the Python-Oauth2 library found <a href="https://github.com/simplegeo/python-oauth2" rel="nofollow">here</a>, Django 1.3. I'll end up using the Twitter library located <a href="http://code.google.com/p/python-twitter/" rel="nofollow">here</a>.</p>
  
  <p>I've searched everything I could on this, but I can't see why I'm getting this error. When someone else asked this question, they were told it was because they didn't call for an authenticate(), but I have that right above the login.</p>
  
  <p>I've managed to figure out that the REASON it is failing is somehow drawn into the call to authenticate() with Django. I confirmed this by commenting out the login- which promptly gets rid of the error. Something about that authenticate, whether it's the profile/user information or something of that nature, is failing.</p>
  
  <p>Here's the code from my views.py:</p>
  
  <pre><code>def twitter_authenticated(request):
      # Step 1. Use the request token in the session to build a new client.
      token = oauth.Token(request.session['request_token']['oauth_token'],
                          request.session['request_token']['oauth_token_secret'])
      client = oauth.Client(consumer, token)
  
      # Step 2. Request the authorized access token from Twitter.
      resp, content = client.request(access_token_url, "GET")
      if resp['status'] != '200':
          print content
          raise Exception("Invalid response from Twitter.")
  
      """
      This is what you'll get back from Twitter. Note that it includes the
      user's user_id and screen_name.
      {
          'oauth_token_secret': 'IcJXPiJh8be3BjDWW50uCY31chyhsMHEhqJVsphC3M',
          'user_id': '120889797',
          'oauth_token': '120889797-H5zNnM3qE0iFoTTpNEHIz3noL9FKzXiOxwtnyVOD',
          'screen_name': 'heyismysiteup'
      }
      """
  
      access_token = dict(cgi.parse_qsl(content))
  
      # Step 3. Lookup the user or create them if they don't exist.
      try:
          user = User.objects.get(username=access_token['screen_name'])
      except User.DoesNotExist:
          # When creating the user I just use their screen_name@twitter.com
          # for their email and the oauth_token_secret for their password.
          # These two things will likely never be used. Alternatively, you
          # can prompt them for their email here. Either way, the password
          # should never be used.
          user = User.objects.create_user(access_token['screen_name'], '%s@twitter.com' % access_token['screen_name'], access_token['oauth_token_secret'])
  
          # Save our permanent token and secret for later.
          profile = Profile()
          profile.user = user
          profile.oauth_token = access_token['oauth_token']
          profile.oauth_secret = access_token['oauth_token_secret']
          profile.save()
  
      # Authenticate the user and log them in using Django's pre-built
      # functions for these things.
  
      user = authenticate(username=access_token['screen_name'], password=access_token['oauth_token_secret'])
      login(request, user)
  
      return HttpResponseRedirect('/')
  </code></pre>