title: Django get_or_create() duplicates in db
body: <p>Using <code>Django 1.11.6</code>, <code>MySql</code>
  I`m importing uniq only data rows from <strong>CSV</strong> file (~530 rows).
  After 1st import - all 530 records updated to the DB.
  If I import this file 2d time and <strong>~30</strong> last records will be updated to DB.</p>
  
  <p>Get data:</p>
  
  <pre><code>obj.account = int(ready_item[0].replace("\"","").replace("*",""))
                  pai_obj.reporting_mask = str(ready_item[0].replace("\"","").replace("*",""))
                  pai_obj.group = ready_item[1].replace("\"","")
                  pai_obj.location = ready_item[2].replace("\"","")
                  pai_obj.terminal = ready_item[4].replace("\"","")
                  pai_obj.settlement_type = ready_item[5].replace("\"","")
                  pai_obj.settlement_date = datetime_or_none(report_data)
                  pai_obj.amount = float_or_none(ready_item[6].replace("\"","").replace("$","").replace(",",""))
  
                  data.append(pai_obj)
  </code></pre>
  
  <p>Import vie get_or_create():</p>
  
  <pre><code>for record in data:
  Accountmode.objects.get_or_create(
      account=record.account, 
      reporting_mask=record.reporting_mask, 
      group=record.group, 
      location=record.location, 
      terminal=record.terminal, 
      settlement_type=record.settlement_type, 
      amount=record.amount, 
      defaults={'settlement_date': record.settlement_date})
  </code></pre>
  
  <p>The Model:</p>
  
  <pre><code>class Accountmode(models.Model):
      account = models.IntegerField(blank=True, default=0)
      reporting_mask = models.IntegerField(blank=False, default=0)
      group = models.CharField(max_length=1024, blank=True, null=True)
      location = models.CharField(max_length=1024, blank=True, null=True)
      settlement_date = models.DateField(null=True)
      terminal = models.CharField(max_length=1024, blank=False, null=True)
      settlement_type = models.CharField(max_length=1024, blank=False, null=True)
      amount = models.DecimalField(max_digits=25, decimal_places=2)
      created_date = models.DateTimeField(default=datetime.now, blank=True)
  </code></pre>
  
  <ol>
  <li>As I know, <code>get_or_create()</code> should check if data already exist first and create new record if Not. Why <code>get_or_create()</code> pass some records? </li>
  </ol>