title: Django: AttributeError: 'NoneType' object has no attribute 'split'
body: <p>I'm trying to build a static site generator using Django (because its resourceful that way), and right now my problems are dealing with the Django command that is supposed to build my static site content into a directory. Apparently my 'NoneType' object has no attribute 'split', but I dont know what that 'NoneType' object is.</p>
  
  <pre><code>(thisSite) C:\Users\Jaysp_000\thisSite\PROJECTx&gt;python prototype.py build
  Traceback (most recent call last):
    File "prototype.py", line 31, in &lt;module&gt;
      execute_from_command_line(sys.argv)
    File "C:\Users\Jaysp_000\thisSite\lib\site-packages\django\core\management\__init__.py",
   line 338, in execute_from_command_line
      utility.execute()
    File "C:\Users\Jaysp_000\thisSite\lib\site-packages\django\core\management\__init__.py",
   line 330, in execute
      self.fetch_command(subcommand).run_from_argv(self.argv)
    File "C:\Users\Jaysp_000\thisSite\lib\site-packages\django\core\management\base.py", lin
  e 390, in run_from_argv
      self.execute(*args, **cmd_options)
    File "C:\Users\Jaysp_000\thisSite\lib\site-packages\django\core\management\base.py", lin
  e 441, in execute
      output = self.handle(*args, **options)
    File "C:\Users\Jaysp_000\thisSite\PROJECTx\sitebuilder\management\commands\build.py", li
  ne 38, in handle
      response = this_client_will.get(the_page_url)
    File "C:\Users\Jaysp_000\thisSite\lib\site-packages\django\test\client.py", line 500, in
   get
      **extra)
    File "C:\Users\Jaysp_000\thisSite\lib\site-packages\django\test\client.py", line 303, in
   get
      return self.generic('GET', path, secure=secure, **r)
    File "C:\Users\Jaysp_000\thisSite\lib\site-packages\django\test\client.py", line 379, in
   generic
      return self.request(**r)
    File "C:\Users\Jaysp_000\thisSite\lib\site-packages\django\test\client.py", line 466, in
   request
      six.reraise(*exc_info)
    File "C:\Users\Jaysp_000\thisSite\lib\site-packages\django\utils\six.py", line 659, in r
  eraise
      raise value
    File "C:\Users\Jaysp_000\thisSite\lib\site-packages\django\core\handlers\base.py", line
  132, in get_response
      response = wrapped_callback(request, *callback_args, **callback_kwargs)
    File "C:\Users\Jaysp_000\thisSite\PROJECTx\sitebuilder\views.py", line 35, in page
      return render(request, 'page.html', context)
    File "C:\Users\Jaysp_000\thisSite\lib\site-packages\django\shortcuts.py", line 67, in re
  nder
      template_name, context, request=request, using=using)
    File "C:\Users\Jaysp_000\thisSite\lib\site-packages\django\template\loader.py", line 99,
   in render_to_string
      return template.render(context, request)
    File "C:\Users\Jaysp_000\thisSite\lib\site-packages\django\template\backends\django.py",
   line 74, in render
      return self.template.render(context)
    File "C:\Users\Jaysp_000\thisSite\lib\site-packages\django\template\base.py", line 208,
  in render
      with context.bind_template(self):
    File "C:\Python34\Lib\contextlib.py", line 59, in __enter__
      return next(self.gen)
    File "C:\Users\Jaysp_000\thisSite\lib\site-packages\django\template\context.py", line 23
  5, in bind_template
      updates.update(processor(self.request))
    File "C:\Users\Jaysp_000\thisSite\lib\site-packages\django\template\context_processors.p
  y", line 56, in i18n
      context_extras['LANGUAGE_BIDI'] = translation.get_language_bidi()
    File "C:\Users\Jaysp_000\thisSite\lib\site-packages\django\utils\translation\__init__.py
  ", line 177, in get_language_bidi
      return _trans.get_language_bidi()
    File "C:\Users\Jaysp_000\thisSite\lib\site-packages\django\utils\translation\trans_real.
  py", line 263, in get_language_bidi
      base_lang = get_language().split('-')[0]
  AttributeError: 'NoneType' object has no attribute 'split'
  </code></pre>
  
  <p>It seems that my problem lies in my command file, which I call <code>build</code>. The traceback also brings up my <code>views</code> file, which works well on its own (that is, my html files can be properly served on the local server), but I will include it anyway.</p>
  
  <p><strong>build.py</strong></p>
  
  <pre><code>import os, shutil
  from django.conf import settings
  from django.core.management import call_command
  from django.core.management.base import BaseCommand
  from django.core.urlresolvers import reverse
  from django.test.client import Client
  
  def get_pages():
      for name in os.listdir(settings.STATIC_PAGES_DIRECTORY):
          if name.endswith('.html'):
              yield name[:-5]
  
  
  class Command(BaseCommand):
      help = 'Build static site output.'
  
      def handle(self, *args, **options):
          """Request pages and build output."""
          if os.path.exists(settings.SITE_OUTPUT_DIRECTORY):
              shutil.rmtree(settings.SITE_OUTPUT_DIRECTORY)
          os.mkdir(settings.SITE_OUTPUT_DIRECTORY) 
          os.makedirs(settings.STATIC_ROOT)   
          call_command('collectstatic', interactive=False, clear=True, verbosity=0)
          this_client_will = Client()
  
          for page in get_pages():
              the_page_url = reverse('page',kwargs={'slug': page})      # PROBLEM SEEMS TO GENERATE STARTING HERE
              response = this_client_will.get(the_page_url)
              if page == 'index.html':
                  output_dir = settings.SITE_OUTPUT_DIRECTORY
              else:
                  output_dir = os.path.join(settings.SITE_OUTPUT_DIRECTORY, page)
                  os.makedirs(output_dir)
              with open(os.path.join(output_dir, 'index.html'), 'wb', encoding='utf8') as f:
                  f.write(response.content)
  </code></pre>
  
  <p><strong>views.py</strong></p>
  
  <pre><code>import os
  from django.conf import settings
  from django.http import Http404
  from django.shortcuts import render
  from django.template import Template
  from django.utils._os import safe_join
  
  # Create your views here.
  
  def get_page_or_404(name):
      """Returns page content as a Django template or raise 404 error"""
      try:
          file_path = safe_join(settings.STATIC_PAGES_DIRECTORY, name)
      except ValueError:
          raise Http404("Page Not Found")
      else:
          if not os.path.exists(file_path):
              raise Http404("Page Not Found")
  
      with open(file_path,"r", encoding='utf8') as f:
          the_page = Template(f.read())
  
      return the_page
  
  def page(request, slug='index'):
      """ Render the requested page if found """
      file_name = '{0}.html'.format(slug)
      page = get_page_or_404(file_name)
      context = {'slug': slug, 'page': page} 
      return render(request, 'page.html', context)   # THE TRACEBACK POINTS AT THIS LINE, TOO
  </code></pre>
  
  <p>and just in case it becomes useful to know, here is my <strong>urls.py</strong>:</p>
  
  <pre><code>from django.conf.urls import include, url
  
  urlpatterns = [
      url(r'^page/(?P&lt;slug&gt;[-\w]+)/$', 'sitebuilder.views.page', name='page'),
      url(r'^page$', 'sitebuilder.views.page', name='homepage'),
  ]
  </code></pre>
  
  <p>I find this frustrating, primarily because this problem seems to be tied to the reverse() function, as seen in the build module, and I havent had a great time using that function for as long as I can remember, but I dont know if this is really my problem. Can someone help me figure out where my issue is coming from and how to solve it (if you have any tips)? It would be much appreciated.</p>