title: Django throwing "invalid literal for int() with base 10: ''" when trying to save object attribute
body: <p>Django keeps throwing the following when I try and save the addition of two object attributes.</p>
  
  <pre><code>invalid literal for int() with base 10: ''
  </code></pre>
  
  <p>The view is:</p>
  
  <pre><code>def buy_pack(request, pack_name):
  if request.method == 'POST':
      form = CardForm(request.POST, request.user)
      pack = Pack.objects.get(name=pack_name)
      stripe_user = request.user.username
  
      if form.is_valid():
          token = request.POST['stripeToken']
          charge = stripe.Charge.create(
              amount=pack.cost,
              currency="usd",
              card=token,
              description=stripe_user+"_"+pack.name,
          )
  
          datestring = charge.created
          dt = datetime.datetime.fromtimestamp(float(datestring))
          new_purchase = Purchase(user=request.user, date_time=dt, pack=pack, payment_id=charge.id, last_4_digits=charge.card.last4)
          new_purchase.save()
  
          user_profile = request.user.get_profile()
          t = user_profile.videos_remaining + pack.videos_allowed
          user_profile.videos_remaining = t
          user_profile.save()
  </code></pre>
  
  <p>The models in question are:</p>
  
  <pre><code>class UserProfile(models.Model):
      user = models.ForeignKey(User, unique=True)
      name = models.CharField(max_length=50)
      videos_remaining = models.IntegerField(default=1)
      last_4_digits = models.IntegerField(max_length=4, blank=True)
      stripe_id = models.CharField(max_length=255, blank=True)
  
      def __unicode__(self):
          return self.name
  </code></pre>
  
  <p>And:</p>
  
  <pre><code>class Pack(models.Model):
      name = models.CharField(max_length=25)
      videos_allowed = models.IntegerField()
      cost = models.IntegerField()
  
      def __unicode__(self):
          return self.name
  </code></pre>
  
  <p>Traceback is:</p>
  
  <pre><code>Traceback:
  File "/Library/Python/2.7/site-packages/django/core/handlers/base.py" in get_response
    111.                         response = callback(request, *callback_args, **callback_kwargs)
  File "/Users/Jeff/Dropbox/xxxxx/Code/thankyouvid/../thankyouvid/main/views.py" in buy_pack
    48.           user_profile.save()
  File "/Library/Python/2.7/site-packages/django/db/models/base.py" in save
    460.         self.save_base(using=using, force_insert=force_insert, force_update=force_update)
  File "/Library/Python/2.7/site-packages/django/db/models/base.py" in save_base
    526.                         rows = manager.using(using).filter(pk=pk_val)._update(values)
  File "/Library/Python/2.7/site-packages/django/db/models/query.py" in _update
    491.         return query.get_compiler(self.db).execute_sql(None)
  File "/Library/Python/2.7/site-packages/django/db/models/sql/compiler.py" in execute_sql
    869.         cursor = super(SQLUpdateCompiler, self).execute_sql(result_type)
  File "/Library/Python/2.7/site-packages/django/db/models/sql/compiler.py" in execute_sql
    725.             sql, params = self.as_sql()
  File "/Library/Python/2.7/site-packages/django/db/models/sql/compiler.py" in as_sql
    834.                 val = field.get_db_prep_save(val, connection=self.connection)
  File "/Library/Python/2.7/site-packages/django/db/models/fields/subclassing.py" in inner
    28.             return func(*args, **kwargs)
  File "/Library/Python/2.7/site-packages/django/db/models/fields/subclassing.py" in inner
    28.             return func(*args, **kwargs)
  File "/Library/Python/2.7/site-packages/django/db/models/fields/__init__.py" in get_db_prep_save
    276.         return self.get_db_prep_value(value, connection=connection, prepared=False)
  File "/Library/Python/2.7/site-packages/django/db/models/fields/subclassing.py" in inner
    53.             return func(*args, **kwargs)
  File "/Library/Python/2.7/site-packages/django/db/models/fields/subclassing.py" in inner
    53.             return func(*args, **kwargs)
  File "/Library/Python/2.7/site-packages/django/db/models/fields/__init__.py" in get_db_prep_value
    271.             value = self.get_prep_value(value)
  File "/Library/Python/2.7/site-packages/django/db/models/fields/__init__.py" in get_prep_value
    876.         return int(value)
  
  Exception Type: ValueError at /buy_pack/most/
  Exception Value: invalid literal for int() with base 10: ''
  </code></pre>
  
  <p>For reference the stored value for user_profile.videos_remaining is 1 and the stored value for pack.videos_allowed is 100.  I am expecting it to add the two values together and store them as 101 in the user_profile.videos_remaining object attribute.</p>
  
  <p>If you can provide any help I would greatly appreciate it.</p>
  
  <p>EDIT:  The problem ended up being that I was not passing a value for the integer field last_4_digits.  It seems that this happens if you have a integerField with blank=True and don't submit a value for it.</p>