Django erreur <modèle> objet n'a pas d'attribut "mettre à jour"

Mise à JOUR

J'ai été faire un peu d'entretien sur le serveur et redémarré... une fois qu'il est revenu le code a très bien fonctionné... ce qui fait réellement m'inquiéter tout de même...

je pense que c'est un bug sur mod_wsgi.

Merci quand même!

Je suis vraiment nouveau à django (commencé hier). J'ai réussi à faire un excel à l'aide de l'analyseur xlrd, tout fonctionne bien avec les données (il charge vraiment très vite), j'ai besoin de mettre à jour les informations du fichier dans la base de données pour que je puisse savoir comment la charge est en cours, c'est là où j'ai le problème, la méthode save() ne fonctionne pas, j'ai déjà utilisé la mise à jour avec get et le filtre, mais toujours le même problème.

J'espère que vous pouvez m'indiquer où est l'erreur

models.py

class archivo(models.Model):
    archivo_id = models.AutoField(primary_key=True)
    fk_cliente = models.IntegerField()
    fk_usuario = models.IntegerField()
    archivo_nombre = models.CharField(max_length = 30)
    archivo_original = models.CharField(max_length = 255)
    archivo_extension = models.CharField(max_length = 5)
    archivo_tamano = models.FloatField()
    archivo_registros = models.IntegerField()
    archivo_registros_buenos = models.IntegerField()
    archivo_registros_malos = models.IntegerField()
    archivo_registros_cargados = models.IntegerField()
    archivo_fecha_carga = models.DateTimeField()
    archivo_fecha_envio = models.DateTimeField()
    def __unicode__(self):
        return self.archivo_id

views.py

from procesa.models import *
from django.conf import settings
from django.shortcuts import render_to_response  
import xlrd
from time import strftime
from symbol import except_clause
def procesa(request, procesar = 0):
datos = None
infoarchivo = None
if(procesar > 0):
try:
infoarchivo = archivo.objects.get(archivo_id=int(procesar))
except:
return render_to_response('error.html')
if (infoarchivo is not None):
excel_path = settings.FILES_URL+infoarchivo.archivo_original
wb = xlrd.open_workbook(str(excel_path))
sh = wb.sheet_by_index(0)
##START UPDATE##
infoarchivo2 = archivo.objects.filter(archivo_id = procesar)
infoarchivo2.archivo_registros = sh.nrows
infoarchivo2.save()
##END UPDATE##            
for rownum in range(sh.nrows):
destino = str(sh.cell(rownum,0).value)
destino = destino.replace(".0","")
if (int(destino) > 0):
mensaje = str(sh.cell(rownum,1).value)
ahora = strftime("%Y-%m-%d %H:%M:%S")
reg = registro.objects.filter(registro_destino__exact=destino,fk_archivo__exact=procesar)
#reg = registro.objects.raw(str(el_query))
if (reg.exists()):
exists = True
else:
r = registro(fk_cliente=1,fk_usuario=1,fk_archivo=int(procesar),registro_destino=destino,registro_mensaje=mensaje,registro_estado='Cargado',registro_fecha_carga=ahora)
r.save()
datos = {'ID':procesar,'PATH': settings.FILES_URL, 'INFO':infoarchivo, 'el_excel':infoarchivo.archivo_original, 'registros':sh.nrows }
return render_to_response('carga.html', {'datos': datos})

dans l' ##DÉMARRER la mise à JOUR## bloc, j'ai déjà essayé avec

infoarchivo.archivo_registros = sh.nrows
infoarchivo.save()

et

archivo.objects.filter(archivo_id = procesar).update(archivo_registros=sh.nrows)

et

archivo.objects.get(archivo_id = procesar).update(archivo_registros=sh.nrows)

Je ne trouve pas de référence à cette erreur ou quelque chose d'autre à ajouter dans les modèles de fichier, je suis sûr que c'est quelque chose de vraiment facile à corriger, mais je ne peux pas le trouver.

L'erreur que je reçois (pour tous les différents codes) est

Type d'Exception: AttributeError /procesa/4

Valeur d'Exception: 'archivo de l'objet n'a pas d'attribut de 'mise à jour'

Les enregistrements du fichier est analysé et inséré sans problème.

Je suis en utilisant Django 1.5 avec python 2.7 de Apache 2.2 avec mod_wsgi et backend mysql installé dans EC2 d'Amazon

Mise à JOUR
J'ai été faire un peu d'entretien sur le serveur et redémarré... une fois qu'il est revenu le code a très bien fonctionné... ce qui fait réellement m'inquiéter tout de même...

je pense que c'est un bug sur mod_wsgi.

Merci quand même!

votre principale la mise à jour qui vous ne vous définissez pas de votre modèle. Réécrire le code qui vous utilisez la méthode de mise à jour OU de définir la méthode de mise à jour de votre modèle de sorte que vous pouvez l'utiliser

OriginalL'auteur mariofix | 2013-03-08