저는 Google App Engine with Python을 사용하여 전자 상거래 사이트에서 작업하고 있습니다. 여기 내 데이터 저장소에서 엔티티 '제품'이다 :Google App Engine : 데이터베이스 객체가 반복 가능하지 않습니다.
을 지금, 나는 사용자의 선호도에 따라 특정 제품을 필터링하는 것을 시도하고있다. 사용자는 드롭 다운 옵션의 도움으로 이러한 환경 설정을 선택할 수 있습니다.
<form method = "post">
<p>Department: </p>
<select name = "branch">
<option></option>
<option>Computers</option>
<option>EXTC</option>
<option>IT</option>
<option>ETRX</option>
<option>MECH</option>
</select>
<br>
<br>
<p>Semester: </p>
<select name = "semester">
<option></option>
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
</select>
<br>
<br>
<p>Publications: </p>
<select name = "publications">
<option></option>
<option>Techmax</option>
<option>Nandu</option>
<option>Pearson</option>
<option>Tata McGraw Hill</option>
<option>Technical</option>
</select>
<br>
<br>
<p>Subject: </p>
<select name = "subject">
<option></option>
<option>System Programming and Compiler Construction</option>
<option>Advanced Microprocessors</option>
<option>Microprocessors and Interfacing</option>
<option>Computer Networks</option>
<option>Data Warehouse and Data Mining</option>
</select>
<br><br>
<input type = "submit">
</form>
가 여기 내 파이썬 코드입니다 : 여기 newbooks.html '에서 같은에 대한 코드의
class NewBooks(Handler):
def get(self):
self.render("newbooks.html")
def post(self):
branch = self.request.get("branch")
semester = self.request.get("semester")
publications = self.request.get("publications")
subject = self.request.get("subject")
if semester:
yo = int(semester)
if(branch and semester and publications and subject):
disp = Products.all().filter("branch =", branch).filter("publisher =", publications).filter("name =", subject).filter("semester =", yo).get()
self.render("newbooks.html", disp = disp)
elif(branch and semester and publications):
disp = Products.all().filter("branch =", branch).filter("publisher =", publications).filter("semester =", yo).get()
self.render("newbooks.html", disp = disp)
elif(branch and semester and subject):
disp = Products.all().filter("branch =", branch).filter("name =", subject).filter("semester =", yo).get()
self.render("newbooks.html", disp = disp)
elif(branch and publications and subject):
disp = Products.all().filter("branch =", branch).filter("publisher =", publications).filter("name =", subject).get()
self.render("newbooks.html", disp = disp)
elif(semester and publications and subject):
disp = Products.all().filter("publisher =", publications).filter("name =", subject).filter("semester =", yo).get()
self.render("newbooks.html", disp = disp)
elif(branch and semester):
disp = Products.all().filter("branch =", branch).filter("semester =", yo).get()
self.render("newbooks.html", disp = disp)
elif(semester and publications):
disp = Products.all().filter("publisher =", publications).filter("semester =", yo).get()
self.render("newbooks.html", disp = disp)
elif(publications and subject):
disp = Products.all().filter("publisher =", publications).filter("name =", subject).get()
self.render("newbooks.html", disp = disp)
elif(branch and subject):
disp = Products.all().filter("branch =", branch).filter("name =", subject).get()
self.render("newbooks.html", disp = disp)
elif(branch and publications):
disp = Products.all().filter("branch =", branch).filter("publisher =", publications).get()
self.render("newbooks.html", disp = disp)
elif(semester and subject):
disp = Products.all().filter("name =", subject).filter("semester =", yo).get()
self.render("newbooks.html", disp = disp)
elif(branch):
disp = Products.all().filter("branch =", branch).get()
self.render("newbooks.html", disp = disp)
elif(semester):
disp = Products.all().filter("semester =", yo).get()
self.render("newbooks.html", disp = disp)
elif(publications):
disp = Products.all().filter("publisher =", publications).get()
self.render("newbooks.html", disp = disp)
elif(subject):
disp = Products.all().filter("name =", subject).get()
self.render("newbooks.html", disp = disp)
그러나이 사용자가 선택한 후, 그리고 그/그녀가 선호하는 필터링 조건을 제출, 내가 얻을 다음 오류 :
TypeError: 'Products' object is not iterable
내 코드에 어떤 문제가있는 것 같습니까? 데이터베이스의 항목을 반복 할 수없는 이유는 무엇입니까?
get()을 사용하지 마십시오. 이것은 단일 항목을 제공합니다. 그것을 건너 뛰거나 fetch()를 사용하십시오 – voscausa