title: Django 3.0 Not Found: /favicon.ico and failing to store uploaded image into disk
body: <p>I am a newbie to Django development and developing an app where users can upload their details and profile picture. The uploaded picture is failed to store in the disk and showing an error. please help me out. <strong>[EDITED]</strong></p>
  <pre><code>Not Found: /favicon.ico
  ----------------------------------------
  Exception happened during processing of request from ('127.0.0.1', 53590)
  Traceback (most recent call last):
    File &quot;c:\users\venkatesh\appdata\local\programs\python\python38-32\lib\socketserver.py&quot;, line 650, in process_request_thread
      self.finish_request(request, client_address)
    File &quot;c:\users\venkatesh\appdata\local\programs\python\python38-32\lib\socketserver.py&quot;, line 360, in finish_request
      self.RequestHandlerClass(request, client_address, self)
    File &quot;c:\users\venkatesh\appdata\local\programs\python\python38-32\lib\socketserver.py&quot;, line 720, in __init__
      self.handle()
    File &quot;C:\Users\venkatesh\Envs\django\lib\site-packages\django\core\servers\basehttp.py&quot;, line 174, in handle
      self.handle_one_request()
    File &quot;C:\Users\venkatesh\Envs\django\lib\site-packages\django\core\servers\basehttp.py&quot;, line 182, in handle_one_request
      self.raw_requestline = self.rfile.readline(65537)
    File &quot;c:\users\venkatesh\appdata\local\programs\python\python38-32\lib\socket.py&quot;, line 669, in readinto
      return self._sock.recv_into(b)
  ConnectionAbortedError: [WinError 10053] An established connection was aborted by the software in your host machine
  
  
  
  </code></pre>
  <p>Here is my urls.py file</p>
  <pre><code>from django.urls import path
  from django.conf import settings
  from django.conf.urls.static import static
  from django.views.generic.base import RedirectView
  from django.contrib.staticfiles.storage import staticfiles_storage
  
  from . import views
  
  urlpatterns = [
      path('',views.home,name='home'),
      path('signup/',views.register,name='signup'),
      path('signup/register',views.register,name='signup'),
      path('signin/',views.signin,name='signin'),
      path('signin/signin',views.signin,name='signin'),
      path('logout/',views.logout,name='logout'),
  
  ]
  
  if settings.DEBUG:
      urlpatterns += static(settings.STATIC_URL, document_root = settings.STATIC_ROOT)
      urlpatterns += static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT)
  
  </code></pre>
  <p>Here is my settings.py</p>
  <pre><code>&quot;&quot;&quot;
  Django settings for AI project.
  
  Generated by 'django-admin startproject' using Django 3.0.7.
  
  For more information on this file, see
  https://docs.djangoproject.com/en/3.0/topics/settings/
  
  For the full list of settings and their values, see
  https://docs.djangoproject.com/en/3.0/ref/settings/
  &quot;&quot;&quot;
  
  import os
  
  # Build paths inside the project like this: os.path.join(BASE_DIR, ...)
  BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
  
  
  # Quick-start development settings - unsuitable for production
  # See https://docs.djangoproject.com/en/3.0/howto/deployment/checklist/
  
  # SECURITY WARNING: keep the secret key used in production secret!
  SECRET_KEY = '4+12aq#j(k%zq%(b%)o2&amp;ln=2ex7-dykjo-(=hk1m3dxj2#&amp;dtz_'
  
  # SECURITY WARNING: don't run with debug turned on in production!
  DEBUG = True
  
  ALLOWED_HOSTS = []
  
  
  # Application definition
  
  INSTALLED_APPS = [
      'django.contrib.admin',
      'django.contrib.auth',
      'django.contrib.contenttypes',
      'django.contrib.sessions',
      'django.contrib.messages',
      'django.contrib.staticfiles',
      'Bharatha',
  ]
  
  MIDDLEWARE = [
      'django.middleware.security.SecurityMiddleware',
      'django.contrib.sessions.middleware.SessionMiddleware',
      'django.middleware.common.CommonMiddleware',
      'django.middleware.csrf.CsrfViewMiddleware',
      'django.contrib.auth.middleware.AuthenticationMiddleware',
      'django.contrib.messages.middleware.MessageMiddleware',
      'django.middleware.clickjacking.XFrameOptionsMiddleware',
  ]
  
  ROOT_URLCONF = 'AI.urls'
  
  TEMPLATES = [
      {
          'BACKEND': 'django.template.backends.django.DjangoTemplates',
          'DIRS': [os.path.join(BASE_DIR,'templates')],
          'APP_DIRS': True,
          'OPTIONS': {
              'context_processors': [
                  'django.template.context_processors.debug',
                  'django.template.context_processors.request',
                  'django.contrib.auth.context_processors.auth',
                  'django.contrib.messages.context_processors.messages',
              ],
          },
      },
  ]
  
  WSGI_APPLICATION = 'AI.wsgi.application'
  
  
  # Database
  # https://docs.djangoproject.com/en/3.0/ref/settings/#databases
  
  DATABASES = {
      'default': {
          'ENGINE': 'django.db.backends.postgresql',
          'NAME': 'postgres',
          'USER':'postgres',
          'PASSWORD':'2208',
          'HOST':'localhost'
  
      }
  }
  
  
  # Password validation
  # https://docs.djangoproject.com/en/3.0/ref/settings/#auth-password-validators
  
  AUTH_PASSWORD_VALIDATORS = [
      {
          'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
      },
      {
          'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
      },
      {
          'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
      },
      {
          'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
      },
  ]
  
  
  # Internationalization
  # https://docs.djangoproject.com/en/3.0/topics/i18n/
  
  LANGUAGE_CODE = 'en-us'
  
  TIME_ZONE = 'UTC'
  
  USE_I18N = True
  
  USE_L10N = True
  
  USE_TZ = True
  
  
  # Static files (CSS, JavaScript, Images)
  # https://docs.djangoproject.com/en/3.0/howto/static-files/
  
  STATIC_URL = '/static/'
  STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'), ) 
  STATIC_ROOT = os.path.join(BASE_DIR, 'staticfiles')
  
  MEDIA_URl = '/media/'
  MEDIA_ROOT = os.path.join(BASE_DIR,'media')
  </code></pre>
  <p>here is my views.py</p>
  <pre><code>from django.shortcuts import render,redirect
  from django.contrib.auth.models import User,auth
  from django.contrib import messages
  from .forms import Profile_Form
  from .models import ResgisterFrom
  
  
  # Create your views here.
  def home(request):
      return render(request,'base.html')
  
  
  def signin(request):
      if request.method=='POST':
          username = request.POST['username']
          password= request.POST['password']
  
          user =auth.authenticate(username=username,password=password)
          if user is not None:
              auth.login(request,user)
              return redirect(&quot;/&quot;)
          else:
              messages.info(request,'Invalid Credentials!')
              return redirect('signin')
      else:
  
          return render(request,'signin.html')
  
  def logout(request):
      auth.logout(request)
      return redirect('/')
  
  def register(request):
      # if this is a POST request we need to process the form data
      template = 'register.html'
     
      if request.method == 'POST':
          # create a form instance and populate it with data from the request:
          #form = Profile_Form(request.POST)
          form = Profile_Form(request.POST, request.FILES)
          # check whether it's valid:
          if form.is_valid():
              if User.objects.filter(username=form.cleaned_data['username']).exists():
                  return render(request, template, {
                      'form': form,
                      'error_message': 'Username already exists.'
                  })
              elif User.objects.filter(email=form.cleaned_data['email']).exists():
                  return render(request, template, {
                      'form': form,
                      'error_message': 'Email already exists.'
                  })
              elif form.cleaned_data['password'] != form.cleaned_data['password_repeat']:
                  return render(request, template, {
                      'form': form,
                      'error_message': 'Passwords do not match.'
                  })
              else:
                  # Create the user:
                  user = User.objects.create_user(
                      form.cleaned_data['username'],
                      form.cleaned_data['email'],
                      form.cleaned_data['password']
                  )
                  user.first_name = form.cleaned_data['first_name']
                  user.last_name = form.cleaned_data['last_name']
                  user.phone_number = form.cleaned_data['phone_number']
                  user.photo = request.FILES['photo']
                  user.save()
                  
  
                  return redirect('signin')
                 
  
     # No post data available, let's just show the page.
      else:
          form = Profile_Form()
  
      return render(request, template, {'form': form})
  
  class EmpImageDisplay(DetailView):
      model = ResgisterFrom
      template_name = 'base.html'
      context_object_name = 'user'
  </code></pre>
  <p>here is my models.py</p>
  <pre><code>from django.db import models
  from django.contrib.auth.models import User
  
  # Create your models here.
  
  class ResgisterFrom(models.Model):
      username = models.CharField(max_length=200)
      email = models.EmailField(max_length=200)
      password = models.CharField(max_length=200)
      password_repeat = models.CharField(max_length=200)
      first_name = models.CharField(max_length=200)
      last_name = models.CharField(max_length=200)
      phone_number = models.CharField(max_length=200)
      photo = models.ImageField(upload_to='images/')
  
      def __str__(self):
          return self.username
  </code></pre>
  <p>Thanks in advance</p>