title: deploying machine learning models in django
body: <p>I have a model that I want to use for predictions which I have loaded using pickle and I have a form created in using django. But when a user submits the form I want it to be in store it in a csv format in a variable so I can perform Xgboost prediction on every form the user fills and after it outputs the prediction. COuld it be its not getting any input. New to this</p>
  
  <pre><code>from django.db import models
  from django import forms
  from django.core.validators import MaxValueValidator, MinValueValidator
  # Create your models here.
  type_loan=(("Cash loan","Cash loan"),
              ("Revolving loan","Revolving Loan"))
  Gender=(("Male","Male"),
          ("Female","Female"))
  Yes_NO=(("YES","YES"),("NO","NO"))
  status=(("Single","Single"),
          ("Married","Married"),
          ("Widow","Widow"),
          ("Seprated","Divorce"))
  Highest_Education=(("Secondary","Secondary"),
                      ("Incomplete Higher","Incomplete Higher"),
                      ("Lower Secondary","Lower Secondary"),
                      ("Academic Degree","Academic Degree"))
  Income_type=(("Working","Working Class"),
              ("State Servant","Civil Servant"),
              ("Commercial Associate","Commercial Associate"),
              ("Pensioner","Pensioner"),
              ("Student","Student"),
              ("Businessman","Business Owner"))
  
  
  class Applicant(models.Model):
      name=models.CharField(default="Jon Samuel",max_length=50,null="True")
      Birth_date=models.DateField(default="2018-03-12",blank=False, null=True)
      Status=models.CharField(choices=status,max_length=50)
      Children=models.IntegerField(default=0,validators=[MinValueValidator(0),MaxValueValidator(17)])
      Highest_Education=models.CharField(choices=Highest_Education,max_length=50)
      Gender=models.CharField(choices=Gender, max_length=50)
      loan_type=models.CharField(choices=type_loan, max_length=50)
      own_a_car=models.CharField(choices=Yes_NO,max_length=50)
      own_a_house=models.CharField(choices=Yes_NO,max_length=50)
  
      def __str__(self):
              return self.name
  </code></pre>
  
  <p>views.py</p>
  
  <pre><code>    from django.shortcuts import render
  from .models import Applicant
  from .forms import Applicant_form
  from django.views.generic import ListView, CreateView, UpdateView
  from django.core.cache import cache
  import xgboost as xgb
  import pickle
  from sklearn.preprocessing import LabelEncoder
  
  class CreateMyModelView(CreateView):
      model = Applicant
      form_class = Applicant_form
      template_name = 'loan/index.html'
      success_url = '/loan/results'
      context_object_name = 'name'
  
  class MyModelListView(ListView):
      template_name = 'loan/result.html'
      context_object_name = 'Results'
  
      def get_queryset(self):
          queryset=Applicant.objects.all()
          with open('model/newloan_model','rb') as f:
              clf=pickle.load(f)
          le=LabelEncoder()
          le.fit(queryset)
          queryset=le.transform(queryset)
          d_test = xgb.DMatrix(queryset) 
          predict=clf.predict(d_test)
          return (predict)
  </code></pre>
  
  <p>TRaceback</p>
  
  <pre><code>File "/home/david/.local/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner
      response = get_response(request)
    File "/home/david/.local/lib/python3.6/site-packages/django/core/handlers/base.py", line 126, in _get_response
      response = self.process_exception_by_middleware(e, request)
    File "/home/david/.local/lib/python3.6/site-packages/django/core/handlers/base.py", line 124, in _get_response
      response = wrapped_callback(request, *callback_args, **callback_kwargs)
    File "/home/david/.local/lib/python3.6/site-packages/django/views/generic/base.py", line 68, in view
      return self.dispatch(request, *args, **kwargs)
    File "/home/david/.local/lib/python3.6/site-packages/django/views/generic/base.py", line 88, in dispatch
      return handler(request, *args, **kwargs)
    File "/home/david/.local/lib/python3.6/site-packages/django/views/generic/list.py", line 142, in get
      self.object_list = self.get_queryset()
    File "/home/david/loan60/loan/views.py", line 27, in get_queryset
      data=le.fit_transform(queryset)
    File "/home/david/.local/lib/python3.6/site-packages/sklearn/preprocessing/label.py", line 235, in fit_transform
      y = column_or_1d(y, warn=True)
    File "/home/david/.local/lib/python3.6/site-packages/sklearn/utils/validation.py", line 797, in column_or_1d
      raise ValueError("bad input shape {0}".format(shape))
  ValueError: bad input shape (3, 10)
  [11/Dec/2018 18:46:28] "GET /loan/results HTTP/1.1" 500 92945
  Not Found: /favicon.ico
  [11/Dec/2018 18:46:28] "GET /favicon.ico HTTP/1.1" 404 2078
  [11/Dec/2018 18:46:35] "GET /admin/ HTTP/1.1" 200 6230
  [11/Dec/2018 18:46:35] "GET /static/admin/css/dashboard.css HTTP/1.1" 304 0
  [11/Dec/2018 18:46:35] "GET /static/admin/css/responsive.css HTTP/1.1" 200 17976
  [11/Dec/2018 18:46:35] "GET /static/admin/css/base.css HTTP/1.1" 304 0
  [11/Dec/2018 18:46:35] "GET /static/admin/css/fonts.css HTTP/1.1" 304 0
  [11/Dec/2018 18:46:35] "GET /static/admin/fonts/Roboto-Light-webfont.woff HTTP/1.1" 200 81348
  [11/Dec/2018 18:46:35] "GET /static/admin/fonts/Roboto-Regular-webfont.woff HTTP/1.1" 200 80304
  [11/Dec/2018 18:46:35] "GET /static/admin/fonts/Roboto-Bold-webfont.woff HTTP/1.1" 200 82564
  [11/Dec/2018 18:46:35] "GET /static/admin/img/icon-changelink.svg HTTP/1.1" 304 0
  [11/Dec/2018 18:46:35] "GET /static/admin/img/icon-addlink.svg HTTP/1.1" 304 0
  [11/Dec/2018 18:46:35] "GET /static/admin/img/icon-deletelink.svg HTTP/1.1" 304 0
  [11/Dec/2018 18:46:38] "GET /admin/loan/applicant/ HTTP/1.1" 200 4808
  [11/Dec/2018 18:46:38] "GET /static/admin/css/changelists.css HTTP/1.1" 304 0
  [11/Dec/2018 18:46:38] "GET /static/admin/js/jquery.init.js HTTP/1.1" 304 0
  [11/Dec/2018 18:46:38] "GET /static/admin/js/core.js HTTP/1.1" 304 0
  [11/Dec/2018 18:46:38] "GET /static/admin/js/admin/RelatedObjectLookups.js HTTP/1.1" 304 0
  [11/Dec/2018 18:46:38] "GET /static/admin/js/urlify.js HTTP/1.1" 200 8972
  [11/Dec/2018 18:46:38] "GET /admin/jsi18n/ HTTP/1.1" 200 3185
  [11/Dec/2018 18:46:38] "GET /static/admin/js/prepopulate.js HTTP/1.1" 304 0
  [11/Dec/2018 18:46:38] "GET /static/admin/js/actions.js HTTP/1.1" 304 0
  [11/Dec/2018 18:46:38] "GET /static/admin/js/vendor/xregexp/xregexp.js HTTP/1.1" 200 128820
  [11/Dec/2018 18:46:38] "GET /static/admin/js/vendor/jquery/jquery.js HTTP/1.1" 200 271751
  [11/Dec/2018 18:46:38] "GET /static/admin/img/tooltag-add.svg HTTP/1.1" 304 0
  [11/Dec/2018 18:46:48] "POST /admin/loan/applicant/ HTTP/1.1" 200 3636
  [11/Dec/2018 18:46:48] "GET /static/admin/js/cancel.js HTTP/1.1" 304 0
  [11/Dec/2018 18:46:50] "POST /admin/loan/applicant/ HTTP/1.1" 302 0
  [11/Dec/2018 18:46:50] "GET /admin/loan/applicant/ HTTP/1.1" 200 3310
  [11/Dec/2018 18:46:50] "GET /admin/jsi18n/ HTTP/1.1" 200 3185
  [11/Dec/2018 18:46:50] "GET /static/admin/img/icon-yes.svg HTTP/1.1" 304 0
  Internal Server Error: /loan/results
  Traceback (most recent call last):
    File "/home/david/.local/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner
      response = get_response(request)
    File "/home/david/.local/lib/python3.6/site-packages/django/core/handlers/base.py", line 126, in _get_response
      response = self.process_exception_by_middleware(e, request)
    File "/home/david/.local/lib/python3.6/site-packages/django/core/handlers/base.py", line 124, in _get_response
      response = wrapped_callback(request, *callback_args, **callback_kwargs)
    File "/home/david/.local/lib/python3.6/site-packages/django/views/generic/base.py", line 68, in view
      return self.dispatch(request, *args, **kwargs)
    File "/home/david/.local/lib/python3.6/site-packages/django/views/generic/base.py", line 88, in dispatch
      return handler(request, *args, **kwargs)
    File "/home/david/.local/lib/python3.6/site-packages/django/views/generic/list.py", line 142, in get
      self.object_list = self.get_queryset()
    File "/home/david/loan60/loan/views.py", line 28, in get_queryset
      d_test = xgb.DMatrix(data) #changing the data to matrix form
    File "/home/david/.local/lib/python3.6/site-packages/xgboost/core.py", line 382, in __init__
      self._init_from_npy2d(data, missing, nthread)
    File "/home/david/.local/lib/python3.6/site-packages/xgboost/core.py", line 450, in _init_from_npy2d
      raise ValueError('Input numpy.ndarray must be 2 dimensional')
  ValueError: Input numpy.ndarray must be 2 dimensional
  [11/Dec/2018 18:46:57] "GET /loan/results HTTP/1.1" 500 93391
  [11/Dec/2018 18:47:04] "GET /loan/ HTTP/1.1" 200 2494
  [11/Dec/2018 18:47:09] "POST /loan/ HTTP/1.1" 302 0
  Internal Server Error: /loan/results
  Traceback (most recent call last):
    File "/home/david/.local/lib/python3.6/site-packages/django/core/handlers/exception.py", line 34, in inner
      response = get_response(request)
    File "/home/david/.local/lib/python3.6/site-packages/django/core/handlers/base.py", line 126, in _get_response
      response = self.process_exception_by_middleware(e, request)
    File "/home/david/.local/lib/python3.6/site-packages/django/core/handlers/base.py", line 124, in _get_response
      response = wrapped_callback(request, *callback_args, **callback_kwargs)
    File "/home/david/.local/lib/python3.6/site-packages/django/views/generic/base.py", line 68, in view
      return self.dispatch(request, *args, **kwargs)
    File "/home/david/.local/lib/python3.6/site-packages/django/views/generic/base.py", line 88, in dispatch
      return handler(request, *args, **kwargs)
    File "/home/david/.local/lib/python3.6/site-packages/django/views/generic/list.py", line 142, in get
      self.object_list = self.get_queryset()
    File "/home/david/loan60/loan/views.py", line 27, in get_queryset
      data=le.fit_transform(queryset)
    File "/home/david/.local/lib/python3.6/site-packages/sklearn/preprocessing/label.py", line 235, in fit_transform
      y = column_or_1d(y, warn=True)
    File "/home/david/.local/lib/python3.6/site-packages/sklearn/utils/validation.py", line 797, in column_or_1d
      raise ValueError("bad input shape {0}".format(shape))
  ValueError: bad input shape (1, 10)
  </code></pre>