Tengo un modelo
class Survey(models.Model):
created_by = models.ForeignKey(User)
question = models.CharField(max_length=150)
active = models.NullBooleanField()
def __unicode__(self):
return self.question
y ahora quiero actualizar solo el activecampo. Entonces hago esto:
survey = get_object_or_404(Survey, created_by=request.user, pk=question_id)
survey.active = True
survey.save(["active"])
Ahora me sale un error IntegrityError: PRIMARY KEY must be unique.
¿Estoy en lo cierto con este método para actualizar?
fuente

.getlugar de.filtery esto no funciona. Pero con el filtro funciona bien. ¿Sabes qué está mal con mi código anterior?question_id. ¿De dónde proviene este valor? ¿Y qué línea exacta eleva elIntegrityError?question_idproviene de urls(?P<question_id>\d+). Mi culpa fue que en el servidor de trabajo django 1.4 está instalado y mi código es 1.5. Pero con tu código está funcionando bien.save()(solución @Alasdair) es una solución más segura, porque este método puede desencadenar cosas como la validación o cualquier código personalizado queupdate()no.