너무 길어서 여기서 두번째를 적기로 합니다.
offset = int(request.GET.get('offset', 0))
limit = int(request.GET.get('limit', 12))
recipe_info = (Recipe
.objects
.order_by('id')
.values('id',
'title',
'description',
'company',
'thumbnail_url',
'posting_date'
)[offset:offset + limit])
request.GET.get 으로 받고나서 형변환을 한다면
try except 로 잡아줘야 한다.
왜 ???
만약에 이것이 숫자여야 하는데
숫자가 아닌것으로 잡을 지도 모른다 이럴경우 except 로 잡아줘야한다.
except ValueError :
return HttpResponse(status=400)
이렇게 잡아주도록 합니다.
만약에 무슨에러가 발생할지 모르겠는데 ??하면
unit test 를 하는게 최고겠지만 모르겠다면 ,
except Exception as e:
print(e)
return HttpResponse(status=400)
이렇게 출력해서 잡아주는게.. 맞는지 모르겠지만 개인적으로 이렇게라도 무슨에러인지 파악하고 지정해주는것이 좋을것 같습니다
Bundle.objects.prefetch_related('product_set')
이럴경우 봐로 알아볼수 있어야하는데 ,
Bundle 입장에서 Product 가 Bundle 을 바라보고있는 입장 입니다.
Bundle 테이블
class Bundle(models.Model):
title = models.CharField(max_length = 100)
price = models.CharField(max_length = 50, null = True)
is_in_promotion = models.BooleanField(default = False)
class Meta:
db_table = 'bundles'
Product 테이블
class Product(models.Model):
....
bundle = models.ManyToManyField('Bundle', through = 'ProductBundle')
category = models.ManyToManyField('Category', through = 'ProductCategory')
class Meta:
db_table = 'products'