≪補助項目|Helpers|emdw≫:≪詳細|Details|emdw≫ページのロード機能の実装
私が第2のプロジェクトで実施する機能は、
このリリースは
私が作成したコードは次のとおりです.
私たちは最初のプロジェクトでも同様の機能を実施したので、あまり困難はありません.
좋아요 기능
、상세페이지 정보 불러오기 기능
、리스트페이지 정보 불러오기 기능
を含む.このリリースは
상세페이지 정보GET API
に対して作成されます.私が作成したコードは次のとおりです.
class ProductView(View):
@AuthorizeProduct
def get(self,request,course_id):
try:
course=Course.objects.get(id=course_id)
stats=course.coursestat_set.all().select_related('stat')
media = course.media_set.get()
results={
"course_id" : course.id,
"sub_category" : course.sub_category.name,
"course_name" : course.name,
"thumbnail_url" : course.thumbnail_image_url,
"page_image" : media.url,
"course_level" : course.level.level,
"price" : course.price,
"payment_period" : course.payment_period,
"discount_rate" : "30%",
"discount_price" : course.price / 3,
"course_like" : course.like_set.count(),
"course_stat" : [{"stat_name" : c_stat.stat.name,"score" : c_stat.score} for c_stat in stats],
"is_like_True" : True if course.like_set.filter(user_id=request.user).exists() else False,
"user_name" : course.user.name,
"profile_image" : course.user.profile_image
}
return JsonResponse({"results" : results}, status=200)
except Course.DoesNotExist:
return JsonResponse({"message" : "INVALID_COURSE"},status=401)
これは、ロードするcourse idがpaht parameter
であることを受信し、courseに対応する情報をロードするAPIである.私たちは最初のプロジェクトでも同様の機能を実施したので、あまり困難はありません.
"course_stat" : [{"stat_name" : c_stat.stat.name,"score" : c_stat.score} for c_stat in stats]
初めて情報を読み込むときstats=course.coursestat_set.all()
courestat
表の情報だけを書きたかったのですが、もしそうならstat
についての情報を取得するには、データベースが常に移動する必要があります.stats=course.coursestat_set.all().select_related('stat')
select_related
を使用してstat
の情報を入力し、常に移動しないようにデータベースを作成します.Reference
この問題について(≪補助項目|Helpers|emdw≫:≪詳細|Details|emdw≫ページのロード機能の実装), 我々は、より多くの情報をここで見つけました https://velog.io/@whytili/2차-프로젝트-상세페이지-불러오기-기능-구현テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol