UPDATEDjango的錯誤<model>對象有沒有屬性「更新」
我在做一些維護的服務器上並重新啓動......一旦它回來的代碼工作就好了......這實際上使我擔心一樣的...
我認爲這是在mod_wsgi的一個bug。
無論如何,謝謝!
我真的很新的Django(昨日開始)。我設法使用xlrd做一個excel解析器,一切工作正常與數據(它加載真的非常快),我需要更新數據庫中的文件信息,所以我可以知道如何負載,這是我的地方問題,save()方法不起作用,我已經使用update和get和filter,但總是出現同樣的問題。
我希望你能指出我在哪裏是錯誤
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})
在##開始更新# #塊我已經嘗試過
infoarchivo.archivo_registros = sh.nrows
infoarchivo.save()
和
archivo.objects.filter(archivo_id = procesar).update(archivo_registros=sh.nrows)
和
archivo.objects.get(archivo_id = procesar).update(archivo_registros=sh.nrows)
我找不到這個錯誤還是其他什麼東西在模型文件中添加任何引用,我敢肯定它的東西很容易修復,但我無法找到它。
我得到(對於所有不同的碼)的錯誤是
異常類型:AttributeError的在/ PROCESA/4
異常值: '檔案館' 對象沒有屬性「更新「
文件的記錄被解析並沒有問題插入。
我在Apache 2.2的使用Django 1.5與2.7蟒與安裝在EC2上亞馬遜的mod_wsgi和MySQL後端
UPDATE 我是做服務器上的一些維修和重新啓動......一旦它來了返回的代碼工作就好了......這實際上讓我擔心一樣的...
我認爲這是在mod_wsgi的一個bug。
無論如何,謝謝!
你重寫你未在模型中定義的更新。重寫你使用更新方法的代碼或在你的模型中定義更新方法,以便你可以使用它 – catherine 2013-03-09 00:29:38