2nd [Hines]💫 4Day
3日目に発表されたPRで頂いたコメントでの結果値をリストで囲んで返すのはなぜですか? プロダクトオブジェクトのみを使用してimage urlを取得するように変更してください.
1番
:{}が1つ以上の場合は[]に戻ります.
{}が1つの場合、すぐに{}として返されます.」
グーグル(Google)でこの問題を解決します.
2番
:逆参照の概念が欠けているため、さらに学習した後、コードを
上記のコメントに基づいて修正されたコードは以下の通りです.👇)に等しい
午後の授業で勉強した
作成した製品のビュー.pyの修正が必要な箇所を見つけました.
上記のコメントの修正を受けたコードでは、productのimageが1つしか返されません!!(どうしたの…?😱😱😱😱😱😱 この状態でunit testをしましたか...
だから.
for文を使用して空のリスト[]を作成し、複数の画像を含めることができます.
append()関数を用いた論理の記述を決定する.
(+他のlist compressionで更新!)
次に、1つの製品画像のみを含むコードを修正する手順を書きます.
まずimageをimage urlという変数に含める
これで、for文で
for文で1つずつ取り出したのはオブジェクトです.
上記のコードは、
for文でimageをJsonが変換できる
上記のコードを用いてfor文を記述したが、
これは
だから、
すなわち,1つ1つの出現オブジェクトが持つ情報は
上記の状況により、
修正後のコード👇)下図のように.
指導者
誰でも変数名を見るだけです.
変数にどのような値が含まれているかを知ってみましょう.
変数名を変更したほうがいいです.
このような提案を受け入れ、
また
対応するunit test codeを作成するすべてのプロセスを整理できません.
私がミスしたところ、過程で発生したミス、解決?の合成は私のブログリンク(👇)添付ファイルとして.
👀 レコードユニットテスト作成プロセス 👀
<ちょっと待って.うなずくと…>
uni testコードを記述する際に,画像に対してfor文を実行する理由を理解した.
上にラベルを作成しました
all()はQuerySet typeなので、jsonは変換できません.
そこで、for文でオブジェクト(インスタンス)をJsonが変換できる形式listまたはdictionary typeに変換すべきであることを学びました.
1番
:{}が1つ以上の場合は[]に戻ります.
{}が1つの場合、すぐに{}として返されます.」
グーグル(Google)でこの問題を解決します.
2番
:逆参照の概念が欠けているため、さらに学習した後、コードを
product.image_set.all()
に変更します.import json
from django.http import JsonResponse
from django.views import View
from products.models import Product
class ProductDetailView(View):
def get(self, request, product_id):
try:
product = Product.objects.get(id=product_id)
result = {
'name' : product.name,
'price' : product.price,
'brand' : product.brand,
'description' : product.description,
'thumbnail_image_url' : product.thumbnail_image_url,
'image_url' : product.image_set.all()[0].image_url
}
return JsonResponse({'message' : result}, status=200)
except Product.DoesNotExist:
return JsonResponse({'message' : 'PRODUCT_DOESNOT_EXIST'}, status=400)
上記のコメントを反映すると、午後の授業で勉強した
unit test
を作成しているうちに間違いが見つかりました.作成した製品のビュー.pyの修正が必要な箇所を見つけました.
上記のコメントの修正を受けたコードでは、productのimageが1つしか返されません!!(どうしたの…?😱😱😱😱😱😱 この状態でunit testをしましたか...
だから.
for文を使用して空のリスト[]を作成し、複数の画像を含めることができます.
append()関数を用いた論理の記述を決定する.
(+他のlist compressionで更新!)
次に、1つの製品画像のみを含むコードを修正する手順を書きます.
まずimageをimage urlという変数に含める
image_url = product.image_set.all() #--> QuerySet 형태
空のlistの変数image resultを指定します.image_result = []
まだあります.これで、for文で
append( )
関数を空のリストで使用して論理を作成する場合、次のコード(変更前)を使用できます.👇)に等しいimport json
from django.http import JsonResponse
from django.views import View
from products.models import Product
class ProductDetailView(View):
def get(self, request, product_id):
try:
product = Product.objects.get(id=product_id)
image_url = product.image_set.all() #--> 쿼리셋[리스트형태]
image_result = []
for image in image_url: #--> 쿼리셋에서 한개씩 꺼내도, 그냥 객체가 꺼내져나옴...
image_result.append(image)
シェルに確認され、image_url
はQuerySet
型です.for文で1つずつ取り出したのはオブジェクトです.
上記のコードは、
image_result
変数が객체
を直接含んでいる場合です.Json
は、オブジェクトまたはクエリー・セットのタイプに変換できません.for文でimageをJsonが変換できる
[ ]
または{ }
の形態に変換します!上記のコードを用いてfor文を記述したが、
これは
Json Serisable Error
を生み出した.だから、
append( )
関数を使用して、空のリストに入れます.すなわち,1つ1つの出現オブジェクトが持つ情報は
image_url
である.上記の状況により、
修正後のコード👇)下図のように.
import json
from django.http import JsonResponse
from django.views import View
from products.models import Product
class ProductDetailView(View):
def get(self, request, product_id):
try:
product = Product.objects.get(id=product_id)
image_url = product.image_set.all() #--> 쿼리셋[리스트형태]
image_result = []
for image in image_url: #--> 쿼리셋에서 한개씩 꺼내도, 그냥 객체가 꺼내져나옴...
image_result.append(image.image_url)
上のコードを除いて指導者
誰でも変数名を見るだけです.
変数にどのような値が含まれているかを知ってみましょう.
変数名を変更したほうがいいです.
このような提案を受け入れ、
`image_url` --> `images`
`image_result` --> `image_list`
以下(👇)の写真とコードは変数名に対するコメントを反映しています.import json
from django.http import JsonResponse
from django.views import View
from products.models import Product
class ProductDetailView(View):
def get(self, request, product_id):
try:
product = Product.objects.get(id=product_id)
images = product.image_set.all() #--> 쿼리셋[리스트형태]
image_list = []
for image in images: #--> 쿼리셋에서 한개씩 꺼내도, 그냥 객체가 꺼내져나옴...
image_list.append(image.image_url)
result = {
'name' : product.name,
'price' : product.price,
'brand' : product.brand,
'description' : product.description,
'thumbnail_image_url' : product.thumbnail_image_url,
'image_url' : image_list
}
return JsonResponse({'message' : result}, status=200)
except Product.DoesNotExist:
return JsonResponse({'message' : 'PRODUCT_DOESNOT_EXIST'}, status=400)
製品データilビューの作成が完了すると、また
unit test
が行われました.対応するunit test codeを作成するすべてのプロセスを整理できません.
私がミスしたところ、過程で発生したミス、解決?の合成は私のブログリンク(👇)添付ファイルとして.
👀 レコードユニットテスト作成プロセス 👀
<ちょっと待って.うなずくと…>
uni testコードを記述する際に,画像に対してfor文を実行する理由を理解した.
上にラベルを作成しました
all()はQuerySet typeなので、jsonは変換できません.
そこで、for文でオブジェクト(インスタンス)をJsonが変換できる形式listまたはdictionary typeに変換すべきであることを学びました.
Reference
この問題について(2nd [Hines]💫 4Day), 我々は、より多くの情報をここで見つけました https://velog.io/@dldbwls492/daty3テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol