O valor da chave duplicada IntegrityError viola a restrição exclusiva - django / postgres

Estou acompanhando em relação a umpergunta que eu perguntei mais cedo em que eu tentei buscar uma conversão de uma consulta mysql goofy / pobremente escrita para postgresql. Eu acredito que consegui com isso. De qualquer forma, estou usando dados que foram movidos manualmente de um banco de dados mysql para um banco de dados postgres. Estou usando uma consulta assim:

  """
  UPDATE krypdos_coderound cru

  set is_correct = case 
      when t.kv_values1 = t.kv_values2 then True 
      else False 
      end

  from 

  (select cr.id, 
    array_agg(
    case when kv1.code_round_id = cr.id 
    then kv1.option_id 
    else null end 
    ) as kv_values1,

    array_agg(
    case when kv2.code_round_id = cr_m.id 
    then kv2.option_id 
    else null end 
    ) as kv_values2

    from krypdos_coderound cr
     join krypdos_value kv1 on kv1.code_round_id = cr.id
     join krypdos_coderound cr_m 
       on cr_m.object_id=cr.object_id 
       and cr_m.content_type_id =cr.content_type_id 
     join krypdos_value kv2 on kv2.code_round_id = cr_m.id

   WHERE
     cr.is_master= False
     AND cr_m.is_master= True 
     AND cr.object_id=%s 
     AND cr.content_type_id=%s 

   GROUP BY cr.id  
  ) t

where t.id = cru.id
    """ % ( self.object_id, self.content_type.id)
  )

Tenho motivos para acreditar que isso funciona bem. No entanto, isso levou a um novo problema. Ao tentar enviar, recebo um erro do django que afirma:

IntegrityError at (some url): 
duplicate key value violates unique constraint "krypdos_value_pkey"

Eu olhei para várias das respostas postadas aqui e eu ainda não encontrei a solução para o meu problema (embora as questões relacionadas tenham feito algumas leituras interessantes). Eu vejo isso em meus logs, o que é interessante porque eu nunca chamo explicitamente de insert- django que deve lidar com isso:

   STATEMENT:  INSERT INTO "krypdos_value" ("code_round_id", "variable_id", "option_id", "confidence", "freetext")
   VALUES (1105935, 11, 55, NULL, E'') 
   RETURNING "krypdos_value"."id"

No entanto, tentar executar isso resulta no erro de chave duplicado. O erro real é lançado no código abaixo.

 # Delete current coding         CodeRound.objects.filter(object_id=o.id,content_type=object_type,is_master=True).delete()
  code_round = CodeRound(object_id=o.id,content_type=object_type,coded_by=request.user,comments=request.POST.get('_comments',None),is_master=True)
  code_round.save()
  for key in request.POST.keys():
    if key[0] != '_' or key != 'csrfmiddlewaretoken':
      options = request.POST.getlist(key)
      for option in options:
        Value(code_round=code_round,variable_id=key,option_id=option,confidence=request.POST.get('_confidence_'+key, None)).save()  #This is where it dies
  # Resave to set is_correct
  code_round.save()
  o.status = '3' 
  o.save(

Eu verifiquei as seqüências e tal e eles parecem estar em ordem. A essa altura, não sei o que fazer - presumo que seja algo no final do Django, mas não tenho certeza. Qualquer feedback seria muito apreciado!

questionAnswers(9)

yourAnswerToTheQuestion