title: How do I prevent fixtures from conflicting with django post_save signal code?
body: <p>In my application, I want to create entries in certain tables when a new user signs up. For instance, I want to create a userprofile which will then reference their company and some other records for them. I implemented this with a post_save signal:</p>
  
  <pre><code>def callback_create_profile(sender, **kwargs):
      # check if we are creating a new User
      if kwargs.get('created', True):
          user = kwargs.get('instance')
          company = Company.objects.create(name="My Company")
          employee = Employee.objects.create(company=company, name_first=user.first_name, name_last=user.last_name)
          profile = UserProfile.objects.create(user=user, employee=employee, partner=partner)
  # Register the callback
  post_save.connect(callback_create_profile, sender=User, dispatch_uid="core.models")
  </code></pre>
  
  <p>This works well when run. I can use the admin to create a new user and the other three tables get entries with sensible as well. (Except that is, the employee since the user.first_name and user.last_name aren't filled out in the admin's form when it saves. I still don't understand why it is done like that)</p>
  
  <p>The problem came when I ran my test suite. Before this, I had created a bunch of fixtures to create these entries in the tables. Now I get an error that states:</p>
  
  <pre><code>IntegrityError: duplicate key value violates unique constraint "core_userprofile_user_id_key"
  </code></pre>
  
  <p>I think this is because I have already created a company,employee and profile records in the fixture with id "1" and now the post_save signal is trying to recreate it.</p>
  
  <p>My questios are: can I disable this post_save signal when running fixtures? Can I detect that I am running as part of the test suite and not create these records? Should I delete these records from the fixtures now (although the signal only sets defaults not the values I want to be testing against)? Why doesn't the fixture loading code just overwrite the created records?</p>
  
  <p>How do people do this?</p>