title: Django object not saving even after "save" call
body: <p>I'm really at a loss because this makes no sense at all. I call save/create an object, and it dosn't show up in the admin site. I even checked the SQLite database with a SQLite Viewer program, which again showed that the item had not been saved.</p>
  
  <p>This is the code that saves the <code>Data</code> object:</p>
  
  <pre><code>        data = Data(represents=field, for_entry=entry, value="This can be anything")
          # field is a DataField db object and entry is a Entry db object (see model below and paragraph)
          print("B4", data) #&lt;---- Shows that Data has not been assigned an ID/pk
          data.save()
          print("8ER: ", data) #&lt;--- Shows that Data has been assigned an ID/pk
  </code></pre>
  
  <p>As you can see from my comments, I know that the Data object is assigned an ID after the <code>save</code> call, which I would think meant that it worked. No error is thrown anywhere. <code>field</code>, and <code>entry</code> are all both. Each one seems to be ok, as in they have the right IDs, were retrieved with <code>[table name].objects.get(id=...)</code>, and I can save/edit them and their saves change. </p>
  
  <p>Even strange, this exact code in a function that is called right before this one works.</p>
  
  <p>This is my model.py (I took out some functions to make it shorter):</p>
  
  <pre><code>class Entry(models.Model):
      parent = models.ForeignKey('Entry', blank = True, null = True, default=None) #  The entry this subs. Is left blank for top level entries.
      id_number = models.CharField(max_length=20)
      visible = models.BooleanField()
      data_field = models.ForeignKey('DataField', default=1)  # The field that this entire entry falls under. REDUNDANT BUT NECISSARY
  
      def __str__(self):
          return str(self.id)+ "-" + str(self.id_number) 
  
  class DataField(models.Model):
      parent = models.ForeignKey('DataField', related_name='parent field', null=True, blank=True, default=1)
      order = models.IntegerField()
      multiple_entries = models.BooleanField(default=True)
      DATA_TYPES = (('t', 'Text'), ('d', 'Date'), ('l', 'List'), ('o', 'Option'), ('b', 'Boolean'), ('f', 'Foreign Key'), ('r', 'Root'), ('bb', 'Branch'), ('i', 'Image'), ('ff', 'File'), ('h', 'Holder'), ('bt', 'Big Text'))  # A number means it is a foreign key. Should go off title.
      foreign_source = models.ForeignKey('DataField', null=True, blank=True) #  Points to DATA FIELD WHO'S MATCHING DATA WILL MAKE UP THE OPTIONS
      data_type = models.CharField(max_length=2, choices=DATA_TYPES, default='t', null=True, blank=True)
      title = models.CharField(max_length=100, null=True, blank=True)
      visibility = models.BooleanField(default=False)
  
      def __str__(self):
          return str(self.id) + "-" + str(self.title)
  
      def __eq__(self, other):
          if not isinstance(other, DataField):
              return False
          if self.data_type == 'h':
              return self.title == other.title
          return self.id == other.id
  
  
  class Data(models.Model):
      represents = models.ForeignKey('DataField')
      for_entry = models.ForeignKey('Entry', null=True)
      value = models.CharField(max_length=1000000)
  
      def __str__(self):
          return self.represents.title + "-" + str(self.for_entry.id) + "-" + str(self.value) + "-" + str(self.id)
  </code></pre>
  
  <p>It's possible that I'm missing something obvious, or maybe you need way more information than I can provide to fix it. If there is not enough information, please comment and request more info, or just list possible issues that could be happening.</p>