title: Django 'AnonymousUser' object has no attribute '_meta'
body: <p>I am using social login in my Django app. So, I have added additional backends in my <code>settings.py</code> file.</p>
  
  <pre><code>AUTHENTICATION_BACKENDS = [
      'django.contrib.auth.backends.ModelBackend',
      'social_core.backends.open_id.OpenIdAuth',
      'social_core.backends.google.GoogleOpenId',
      'social_core.backends.google.GoogleOAuth2',
      'social_core.backends.google.GoogleOAuth',
      'social_core.backends.twitter.TwitterOAuth',
      'social_core.backends.facebook.FacebookOAuth2',
      'social_core.backends.github.GithubOAuth2',
  </code></pre>
  
  <p>]</p>
  
  <p>I have also used <code>UserCreationForm</code> for signup,</p>
  
  <pre><code>class SignupForm(UserCreationForm):
      first_name = forms.CharField(max_length=30, required=True, help_text='Required.')
      last_name = forms.CharField(max_length=30, required=True, help_text='Required.')
      email = forms.EmailField(max_length=254, help_text='Required. Inform a valid email address.')
  
      class Meta:
          model = User
          fields = ('username', 'first_name', 'last_name', 'email', 'password1', 'password2' )
  </code></pre>
  
  <p>This is the views file, </p>
  
  <pre><code>def signup(request):
      if request.method == 'POST':
          form  = SignupForm(request.POST)
          if form.is_valid():
              form.save()
              username = form.cleaned_data.get('username')
              raw_pass = form.cleaned_data.get('password')
              user = authenticate(request, username=username, password=raw_pass)
              login(request,user,backend='django.contrib.auth.backends.ModelBackend')
              url = reverse('location:get_location')
              print("location_url ", url)
              return HttpResponseRedirect(url)
      else:
          form = SignupForm()
      return render(request, 'signup.html', {'form':form})
  </code></pre>
  
  <p>Now, I get this error when i click signup button on my form, </p>
  
  <pre><code>'AnonymousUser' object has no attribute '_meta'
  </code></pre>
  
  <p>at the line, </p>
  
  <pre><code>login(request,user,backend='django.contrib.auth.backends.ModelBackend')
  </code></pre>
  
  <p>Why so ?</p>
  
  <p>I can see in my admin panel that user has been saved.</p>
  
  <p>What is causing this error ? and how to solve it ?</p>
  
  <p>EDIT - </p>
  
  <pre><code>Internal Server Error: /signup/
  Traceback (most recent call last):
    File "/home/luvpreet/Envs/weather/local/lib/python2.7/site-packages/django/core/handlers/exception.py", line 41, in inner
      response = get_response(request)
    File "/home/luvpreet/Envs/weather/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 187, in _get_response
      response = self.process_exception_by_middleware(e, request)
     File "/home/luvpreet/Envs/weather/local/lib/python2.7/site-packages/django/core/handlers/base.py", line 185, in _get_response
      response = wrapped_callback(request, *callback_args, **callback_kwargs)
    File "/home/luvpreet/Desktop/drf-vogo/weather/weather/pilot/views.py", line 45, in signup
      login(request,user,backend='django.contrib.auth.backends.ModelBackend')
    File "/home/luvpreet/Envs/weather/local/lib/python2.7/site-packages/django/contrib/auth/__init__.py", line 154, in login
       request.session[SESSION_KEY] = user._meta.pk.value_to_string(user)
    File "/home/luvpreet/Envs/weather/local/lib/python2.7/site-packages/django/utils/functional.py", line 239, in inner
      return func(self._wrapped, *args)
  AttributeError: 'AnonymousUser' object has no attribute '_meta'
  </code></pre>