def list_items(request, pk): try: list = List.objects.get(pk=pk) except List.DoesNotExist: return HttpResponse(status=404) if request.method == 'GET': ordered_items = list.item_set.all().order_by(Lower('description')) serializer = ItemSerializer(ordered_items, many=True) return JsonResponse(serializer.data, safe=False) if request.method == 'POST': data = JSONParser().parse(request) if '$' in data['newItemDescription']: description = data['newItemDescription'].split('$')[0].strip() cost = data['newItemDescription'].split('$')[1] else: description = data['newItemDescription'].strip() cost = 1 try: existing_item = list.item_set.get(description=description) if existing_item.done: existing_item.toggle_done() except: list.item_set.create(description=description, cost=cost) serializer = ItemSerializer(list.item_set.all(), many=True) return JsonResponse(serializer.data, safe=False)
def get(self, request, *args, **kwargs): serializerContext = {} # las cosas # item_objects_cosas = Item.objects.filter(category__number="1").filter(category__number="2").filter(category__number="3").order_by("-created_at") item_objects_cosas = Item.objects.filter( Q(category__number="1") | Q(category__number="2") | Q(category__number="3")).exclude(active=False).order_by("-id") serializer_cosas = ItemSerializer(item_objects_cosas, many=True) item_objects_habitacion = Item.objects.filter( Q(category__number="4") | Q(category__number="5") | Q(category__number="6") | Q(category__number="7")).exclude(active=False).order_by("-id") serializer_habitacion = ItemSerializer(item_objects_habitacion, many=True) item_objects_trabajo = Item.objects.filter( Q(category__number="8") | Q(category__number="9")).exclude(active=False).order_by("-id") serializer_trabajo = ItemSerializer(item_objects_trabajo, many=True) item_objects_tienda = Item.objects.filter( category__number="10").exclude(active=False).order_by("-id") serializer_tienda = ItemSerializer(item_objects_tienda, many=True) serializerContext[ SerializerContextKey.ITEM_OBJECTS_COSAS] = serializer_cosas.data serializerContext[SerializerContextKey. ITEM_OBJECTS_HABITACION] = serializer_habitacion.data serializerContext[SerializerContextKey. ITEM_OBJECTS_TRABAJO] = serializer_trabajo.data serializerContext[ SerializerContextKey.ITEM_OBJECTS_TIENDA] = serializer_tienda.data return Response(serializerContext)
def post(self, request): serializer = ItemSerializer(data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def post(self, request): helpCenter = json.loads(request.query_params.get('data', {})) serializer = ItemSerializer(data=helpCenter) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def put(self, request, itemId): item = self.get_object(itemId) serializer = ItemSerializer(item, data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def put(self, request, pk, format=None): item = self.get_object(pk) serializer = ItemSerializer(item, data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def post(self, request): serializer = ItemSerializer(data=request.data) if serializer.is_valid(): serializer.save() response_data = {} response_data["success"] = "True" response_data["message"] = "Settings updated successfully." return Response(response_data, status=status.HTTP_200_OK) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def test_item_serializer(self): items = Item.objects.all() serializer = ItemSerializer(data=list(items), many=True) serializer.is_valid() logging.info('Serializer data: %s' % serializer.data) expected_response = full_category_expected_response().get('subcategories') expected_response = expected_response[0].get('items') logging.info('Expected response: %s' % expected_response) self.assertEqual(serializer.data, expected_response)
def get(self, request, *args, **kwargs): serializerContext = {} item_objects = Item.objects.all().exclude( active=False).order_by("-created_at") serializer = ItemSerializer(item_objects, many=True) serializerContext[SerializerContextKey.ITEM_OBJECTS] = serializer.data return Response(serializerContext)
def create_item(data): item = Item() item.hook = self item.owner = self.owner item.feed = self.feed item.data = demjson.encode(data) item.save() from api.serializers import ItemSerializer data = demjson.encode(ItemSerializer(item).data) Group("notif-{}".format(str(self.owner.id))).send({ "text": data, }) return item
def item_list(request): """ List all code snippets, or create a new snippet. """ if request.method == 'GET': items = Item.objects.all() serializer = ItemSerializer(items, many=True) return Response(serializer.data) elif request.method == 'POST': serializer = ItemSerializer(data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def get(self, request, *args, **kwargs): serializerContext = {} # ユーザー認証されていないときは、ログインページにつなぐ if request.auth is None: return Response({"result": "fail"}) # Android端末では"ログインして下さい"を表示させる。 # 自分が作成した記事を表示する item_objects = Item.objects.filter( user=request.user).order_by("-created_at") if item_objects.count() > 0: item_objects_serializer = ItemSerializer(item_objects, many=True) print("maji??") # print(item_objects_serializer.data) return Response({"itemSerializer": item_objects_serializer.data}) else: print("koko??") return Response({"itemSerializer": "jeje"})
def get(self, request, *args, **kwargs): # アクセスユーザーの制限 token = getTokenFromHeader(self) requestUser = getUserByToken(token) if requestUser is None: return Response({"result": "fail"}) favItemObjects = Item.objects.filter( favorite_users=requestUser).exclude(active=False) serializer = ItemSerializer(favItemObjects, many=True) # serializerContextに表示するデータを格納 serializerContext = {} serializerContext[SerializerContextKey.ITEM_OBJECTS] = serializer.data # 成功した場合のレスポンスを返す return Response(serializerContext)
def list_item_hide(request, list_id, item_id): try: list = List.objects.get(pk=list_id) except List.DoesNotExist: return HttpResponse(status=404) item = list.item_set.get(pk=item_id) if item.done: item.active = False else: item.done = True item.save() #serializer = ItemSerializer(item) #return JsonResponse(serializer.data, safe=False) serializer = ItemSerializer(list.item_set.all(), many=True) return JsonResponse(serializer.data, safe=False)
def item_list(request, pk=0): """ List all code item, or create a new sitem. """ if request.method == 'GET': items = Item.objects.all() if int(pk) > 0: items = Item.objects.filter(pk=pk) serializer = ItemSerializer(items, many=True) return JsonResponse(serializer.data, safe=False) elif request.method == 'POST': data = JSONParser().parse(request) serializer = ItemSerializer(data=data) if serializer.is_valid(): serializer.save() return JsonResponse(serializer.data, status=201) return JsonResponse(serializer.errors, status=400)
def get(self, request, *args, **kwargs): """機能 endpoint: 'api/items/category/<int:pk>/items/list/local/' name: - """ """テスト項目 """ token = getTokenFromHeader(self) userObj = getUserByToken(token) profileObj = Profile.objects.get(user=userObj) category_number = self.kwargs["pk"] # print(category_number) categoryObj = Category.objects.get(number=category_number) itemObjects = Item.objects.filter(category=categoryObj).filter( adm1=profileObj.adm1).exclude(active=False).order_by("-created_at") serializer = ItemSerializer(itemObjects, many=True) serializerContext = {} serializerContext[SerializerContextKey.ITEM_OBJECTS] = serializer.data return Response(serializerContext)
def item_detail(request, pk): """ Retrieve, update or delete a code snippet. """ try: item = Item.objects.get(pk=pk) except Item.DoesNotExist: return Response(status=status.HTTP_404_NOT_FOUND) if request.method == 'GET': serializer = ItemSerializer(item) return Response(serializer.data) elif request.method == 'PUT': serializer = ItemSerializer(item, data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) elif request.method == 'DELETE': item.delete() return Response(status=status.HTTP_204_NO_CONTENT)
def get_item(self, obj): return ItemSerializer(obj.item).data
def get(self, request, *args, **kwargs): """機能 endpointに対応する記事データを返す endpoint: "api/items/<int:pk>/" name: "item_detail" 必要なオブジェクト item_obj, profile_obj, solicitudes_objects, direct_messages_objects ItemContactに関しては最新の5コメントしか表示しない仕様である。 """ """テスト項目 済 ItemオブジェクトがResponseとして返される 済 endpoint内のintに対応するidの記事データが返される 済 ItemContactオブジェクトがItemオブジェクトのプロパティとしてResponseで返される 済 UserオブジェクトがItemオブジェクトのプロパティとしてResponseで返される 済 SolicitudオブジェクトがItemオブジェクトのプロパティとしてResponseで返される """ pk = self.kwargs["pk"] item_obj = Item.objects.get(id=pk) item_obj_serializer = ItemSerializer(item_obj) user_obj = item_obj.user profile_obj = Profile.objects.get(user=item_obj.user) profile_obj_serializer = ProfileSerializer(profile_obj) solicitudes_objects = item_obj.solicitudes.all() solicitudSerializer = SolicitudSerializer(solicitudes_objects, many=True) item_contact_objects = item_obj.item_contacts.all().order_by( "-timestamp")[:5] item_contact_objects_serializer = ItemContactSerializer( item_contact_objects, many=True) direct_messages_objects = DirectMessage.objects.filter(item=item_obj) # 共通のデータをserializer_contextに格納する serializer_context = {} serializer_context["item_obj_serializer"] = item_obj_serializer.data serializer_context[ "profile_obj_serializer"] = profile_obj_serializer.data token = getTokenFromHeader(self) accessUser = getUserByToken(token) # serializer_context[SerializerContextKey.BTN_CHOICE]を設定 if accessUser == None: serializer_context[SerializerContextKey. BTN_CHOICE] = BtnChoice.ANONYMOUS_USER_ACCESS elif accessUser == user_obj and solicitudes_objects.count() == 0: serializer_context[ SerializerContextKey.BTN_CHOICE] = BtnChoice.NO_SOLICITUDES elif accessUser == user_obj and solicitudes_objects.count( ) != 0 and direct_messages_objects.count() == 0: serializer_context[ SerializerContextKey.BTN_CHOICE] = BtnChoice.SELECT_SOLICITUDES elif accessUser == user_obj and direct_messages_objects.count() != 0: serializer_context[ SerializerContextKey.BTN_CHOICE] = BtnChoice.GO_TRANSACTION elif accessUser != user_obj and solicitudes_objects.filter( applicant=Profile.objects.get(user=accessUser)).count( ) == 0 and direct_messages_objects.filter( item=item_obj).count() == 0: serializer_context[ SerializerContextKey.BTN_CHOICE] = BtnChoice.SOLICITAR elif accessUser != user_obj and solicitudes_objects.filter( applicant=Profile.objects.get(user=accessUser)).count( ) != 0 and direct_messages_objects.count() == 0: serializer_context[ SerializerContextKey.BTN_CHOICE] = BtnChoice.SOLICITADO elif accessUser != user_obj and direct_messages_objects.filter( participant=Profile.objects.get(user=accessUser)).count() == 1: serializer_context[ SerializerContextKey.BTN_CHOICE] = BtnChoice.GO_TRANSACTION elif accessUser != user_obj and direct_messages_objects.filter( participant=Profile.objects.get(user=accessUser)).count() == 0: serializer_context[ SerializerContextKey.BTN_CHOICE] = BtnChoice.CANNOT_TRANSACTION # データを送信 return Response(serializer_context)
def get(self, request, itemId): item = self.get_object(itemId) serializer = ItemSerializer(item) return Response(serializer.data)
def patch(self, request, *args, **kwargs): """ endpoint: /api/items/<int:pk>/ name: - """ """テスト項目 タイトルのみの変更の場合にはタイトルが変更される。 カテゴリーだけの変更の場合にはカテゴリーの変更が反映される。 """ pk = self.kwargs["pk"] item_obj = Item.objects.get(id=pk) print("ここ通っている???") print(request.data) strJsonData = request.data["jsonData"] jsonData = json.loads(strJsonData) # categoryName = jsonData.pop("category")["name"] # print("CATEGORY_NAME" + categoryName) # category_obj = Category.objects.get(name=categoryName) imagesData = request.FILES # print("IMAGES_DATA : ", imagesData) isChanged = self.isChangedCategoryValue(item_obj, jsonData) if isChanged is True: category_obj = Category.objects.get( number=jsonData["category"]["number"]) item_obj.category = category_obj item_obj.save() serializer = ItemSerializer(item_obj, data=jsonData, partial=True) print("is_valid? : ", serializer.is_valid()) if serializer.is_valid(): serializer.save() itemId = serializer.instance.id url = getItemDetailUrl(itemId) if len(request.FILES.keys()) == 0: return Response({"result": "success", "detail": url}) # if len(request.FILES.keys()) > 0: print("TRUEが🐸") # item_objに画像データを追加修正する。 try: serializer.instance.image1 = imagesData[ SerializerContextKey.IMAGE1] # item_obj.image1 = imagesData[SerializerContextKey.IMAGE1] except: pass try: serializer.instance.image2 = imagesData[ SerializerContextKey.IMAGE2] # item_obj.image2 = imagesData[SerializerContextKey.IMAGE2] except: pass try: serializer.instance.image3 = imagesData[ SerializerContextKey.IMAGE3] # item_obj.image3 = imagesData[SerializerContextKey.IMAGE3] except: pass serializer.instance.save() return Response({"result": "success", "detail": url}) return Response({"result": "success", "detail": url})
def get(self, request): helpCenters = Item.objects.all() serializer = ItemSerializer(helpCenters, many=True) return Response(serializer.data)
def post(self, request, *args, **kwargs): # ① user_objを取得 token = getTokenFromHeader(self) user_obj = getUserByToken(token) # print(token) # ② category_objを取得 # print("REQUEST_DATA") # print(request.data) strJsonData = request.data["jsonData"] jsonData = json.loads(strJsonData) # print(jsonData) categoryNumber = jsonData.pop("category")["number"] # print("CATEGORY_NAME" + categoryNumber) category_obj = Category.objects.get(number=categoryNumber) jsonData["category"] = category_obj.id # ③ title, description, adm0, adm1, adm2を取得 # serializer.is_valid()がTrueのとき各要素を取得する imagesData = request.FILES # print("IMAGES_DATA : ", imagesData) serializer = ItemSerializer(data=jsonData) if serializer.is_valid(): print("SERIALIZER.IS_VALID : TRUE") item_obj = Item.objects.create( title=jsonData["title"], user=user_obj, description=jsonData["description"], price=jsonData["price"], category=category_obj, adm0=jsonData["adm0"], adm1=jsonData["adm1"], adm2=serializer.validated_data["adm2"]) try: point = jsonData["point"] item_obj.point = point item_obj.save() except: pass try: radius = jsonData["radius"] item_obj.radius = radius item_obj.save() except: pass url = getItemDetailUrl(item_obj.id) #print("ItemObject生成成功") if len(request.FILES.keys()) > 0: print("TRUEが🐸") #item_objに画像データを追加修正する。 try: item_obj.image1 = imagesData[SerializerContextKey.IMAGE1] except: pass try: item_obj.image2 = imagesData[SerializerContextKey.IMAGE2] except: pass try: item_obj.image3 = imagesData[SerializerContextKey.IMAGE3] except: pass item_obj.save() return Response({"result": "success", "detail": url}) return Response({"result": "success", "detail": url}) elif serializer.is_valid() == False: print("SERIALIZER.IS_VALID : False") for ele in serializer: print(ele) return Response({"result": "fail"})
def get(self, request, *args, **kwargs): """機能 endpoint: 'api/items/category/<int:pk>/items/list/' name: - """ """テスト項目 """ category_number = self.kwargs["pk"] if category_number == 999: return redirect('api:item_home_list') elif category_number == 500: # 500 --- Las Cosas...(1,2,3) dar o donar, busca donante, quiere avisarのカテゴリを一括にしたもの / categories.models.py 参照すること itemObjects = Item.objects.filter( Q(category__number="1") | Q(category__number="2") | Q(category__number="3")).exclude( active=False).order_by("-id") serializer = ItemSerializer(itemObjects, many=True) serializerContext = {} serializerContext[ SerializerContextKey.ITEM_OBJECTS] = serializer.data return Response(serializerContext) elif category_number == 600: # 600 --- Habitacion...(4,5,6,7) buscar habitacion, alquilar habitacion, dar pencionado, busco pencionista itemObjects = Item.objects.filter( Q(category__number="4") | Q(category__number="5") | Q(category__number="6") | Q(category__number="7")).exclude( active=False).order_by("-id") serializer = ItemSerializer(itemObjects, many=True) serializerContext = {} serializerContext[ SerializerContextKey.ITEM_OBJECTS] = serializer.data return Response(serializerContext) elif category_number == 700: # 700 --- trabajo ...(8,9) buscar empleo, buscar trabajador itemObjects = Item.objects.filter( Q(category__number="8") | Q(category__number="9")).exclude( active=False).order_by("-id") serializer = ItemSerializer(itemObjects, many=True) serializerContext = {} serializerContext[ SerializerContextKey.ITEM_OBJECTS] = serializer.data return Response(serializerContext) elif category_number == 800: # 800 ___ Empresas y Servicios ...(10) publicidad de Enpresas y Servicios itemObjects = Item.objects.filter(category__number="10").exclude( active=False).order_by("-id") serializer = ItemSerializer(itemObjects, many=True) serializerContext = {} serializerContext[ SerializerContextKey.ITEM_OBJECTS] = serializer.data return Response(serializerContext) # print(category_number) categoryObj = Category.objects.get(number=category_number) itemObjects = Item.objects.filter(category=categoryObj).exclude( active=False).exclude(active=False).order_by("-created_at") serializer = ItemSerializer(itemObjects, many=True) serializerContext = {} serializerContext[SerializerContextKey.ITEM_OBJECTS] = serializer.data return Response(serializerContext)
def get(self, request, format=None): items = Item.objects.all() itemsSerializer = ItemSerializer(items, many=True) return Response(itemsSerializer.data)
def get(self, request, kind, format=None): items = Item.objects.filter(kind__name=kind) serializer = ItemSerializer(items, many=True) return Response(serializer.data)
def post(self, request, format=None): serializer = ItemSerializer(data=request.data) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def get(self, request): items = Item.objects.filter(user=request.user) serializer = ItemSerializer(items, many=True) return Response({'items': serializer.data})
def get(self, request, pk, format=None): item = self.get_object(pk) serializer = ItemSerializer(item) return Response(serializer.data)
def list(self, request, *args, **kwargs): items = Item.objects.all() serializer = ItemSerializer(items, many=True) return Response(serializer.data)