です全体的なアプローチとコードの問題の数ですが、あなたが記述している問題を修正することができますが、最初の修正として私はもう1つの答えに同意します:return
ステートメントをループから外す必要があります。今すぐループを一歩進んだらすぐにあなたのリストをreturn
にしているので、常に1つの要素でリストを取得できます。ここではそのための修正は、(あなたのコードの先頭にfrom django.http import JsonResponse
を追加する必要があります)です。
if Pathlabid:
for p in labs:
labdict["Pathlabid"] = p.Pathlabid
labdict["name"] = p.Name
labdict["email_id"] = p.Emailid
labdict["contact_no"] = p.BasicContact
labdict["alternate_contact_no"] = p.AlternateContact
labdict["bank_account_number"] = p.Accountnumber
labdict["ifsccode"] = p.IFSCcode
labdict["country"] = p.Country
labdict["homepickup"] = p.Homepickup
lablist.append(labdict)
else:
for p in labs:
labdict["bank_account_number"] = p.Accountnumber
lablist.append(labdict)
return JsonResponse(json.dumps(lablist))
改善だろうDjangoの残りのフレームワークまたは同様のパッケージを使用して、コメントで示唆したように。一般的なルールとして、Djangoやその他のORMでは、このようなクエリセットをループしたり、各要素を調整したりしないようにしたいと考えています。なぜ、クエリーセット自体をシリアル化して、テンプレートや他のコンシューマでこのループにあるロジックを実行しないのですか?
Djnago Rest Framework(http://www.django-rest-framework.org/)を使用すると、あなたの人生ははるかに簡単になります –