0
我試圖打開一個xml文件,操縱並呈現響應或從url下載文件。我正在做返回多個對象,當我說for循環打印後,在終端我看到每個請求的對象來,但當我說只返回單個對象來請求的URL和終端。這裏是我的代碼;Django - for循環後返回單個值,而打印返回多個值
def xml(request):
filename = "/usr/..../...."
programs = x.objects.all()
categories = y.objects.all()
with open(filename,'r+') as f:
old = f.read()
for m,k in itertools.product(categories,programs):
if k.name_tr == m.name_tr:
s = old.replace ('titlesss',k.name_tr,1)
j= k.introduction_tr
decoded = BeautifulStoneSoup(j, convertEntities=BeautifulStoneSoup.HTML_ENTITIES)
x =str(decoded)
x = unicode(x,"utf-8")
s = s.replace ("infosss",x,1)
if m.id == 310:
s = s.replace('idsss',"231",1)
elif m.id == 308:
s = s.replace ('idsss',"230",1)
elif m.id == 159:
s = s.replace ('idsss',"203",1)
elif m.id == 163:
s = s.replace ('idsss',"204",1)
elif m.id == 280:
s = s.replace ('idsss',"212",1)
elif m.id == 157:
s = s.replace ('idsss',"202",1)
elif m.id == 282:
s = s.replace ('idsss',"211",1)
response = HttpResponse(s,mimetype ="application/force-download")
response['Content-Disposition'] = 'attachment; filename=output.xml'
return response
當我添加「yield s」時,我得到'generator'對象沒有屬性'get'。你有什麼想法嗎? – tunaktunak
嗯,問題是你正在試圖在Django視圖中做到這一點,而Django期望視圖不是生成器...對不起,但我的回答並沒有完全回答你的問題...如果你想每個新的請求返回使用程序和類別中的下一行的響應,您需要依靠某些django會話來保持請求之間的狀態(如當前在每個文件中查看的當前行)。 –