예제 #1
0
def update(item_id):
    try:
        name = request.json['name']
        loc = request.json['location']
        category = request.json['category']
        desc = request.json['description']
        new_item = Item(name, loc, category, desc)
        item = db.session.query(Item).filter(Item.id == item_id).one()
        new_item.update_item(item)
        db.session.commit()
        db.session.close()
        resp = jsonify({"Action": 'Item Updated Successfully'})
        resp.status_code = 200
        return resp

    except KeyError as k:
        resp = jsonify({"error": k.args[0] + ' Value is missing'})
        # Status Code 400 is used when the request made by the client is not understandable by the server
        resp.status_code = 400
        return resp

    except SQLAlchemyError:
        resp = jsonify({"error": 'something went wrong'})
        resp.status_code = 500
        return resp
예제 #2
0
def load_levels():
    for level in LEVELS:
        new_level = DungeonLevel(
            level_id=level['id'],
            level_name=level['name'],
            level_desc=level['desc'],
            max_room_size=level['max_room_size'],
            min_room_size=level['min_room_size'],
            max_rooms=level['max_rooms'],
            is_final_level=level['is_final_level']
        )
        new_level.save()

        # load any items for the level
        for item in level['items']:
            new_item = Item(
                level_id=level['id'],
                name=item['name'],
                description=item['desc'],
                ascii_char=item['ascii_char'],
                inventory_list=item['inventory_list'],
                category=item['category'],
                stat_mod=item['stat_mod'],
                operation=item['op'],
                value=item['value'],
                fgcolor=json.dumps(item['fgcolor']),
                bgcolor=json.dumps(item['bgcolor'])
            )
            new_item.save()

        load_monsters(level)
예제 #3
0
def add_item(target):
    user = User.objects.get(u_id=target.user_id)
    host = Host.objects.get(user=user)
    items = Item.objects.filter(i_id=target.id)
    for i in items:
        i.delete()
    if re.search('house', target.type):
        i_type = Item.House
    elif re.search('apartment', target.type):
        i_type = Item.Apartment
    else:
        i_type = Item.Flat
    item = Item(
        i_id=target.id,
        owner=host,
        i_type=i_type,
        title=target.title,
        album_first='static/album/{}/{}/0.jpg'.format(target.user_id,
                                                      target.id),
        album=albums(target.user_id, target.id),
        desc='desc test test',
        address=target.address,
        longitude=target.longitude,
        latitude=target.latitude,
        avaliable=avai_date(),
        price_per_day=target.price,
        guest_num=target.guest_num,
        bedroom_num=target.bedroom_num,
        bed_num=target.bed_num,
        bathroom_num=target.bathroom_num)
    item.save()
예제 #4
0
def create():
    try:
        name = request.json['name']
        loc = request.json['location']
        category = request.json['category']
        desc = request.json['description']
        item = Item(name, loc, category, desc)
        db.session.add(item)
        db.session.commit()
        db.session.close()

        resp = jsonify({"Action": 'Item Added Successfully'})
        resp.status_code = 201
        return resp

    except KeyError as k:
        resp = jsonify({"error": k.args[0] + ' Value is missing'})
        # Status Code 400 is used when the request made by the client is not understandable by the server
        resp.status_code = 400
        return resp

    except SQLAlchemyError as e:
        resp = jsonify({"error": 'Something went wrong'})
        resp.status_code = 500
        return resp
예제 #5
0
def AddItem():
	form=ProductForm()
	name=request.form.get('name')
	description=request.form.get('description')
	new_item=Item(name=name,description=description)
	db.session.add(new_item)
	db.session.commit()
	return redirect('/')
예제 #6
0
def addMedia(request):
    '''
        takes {
            id: oshash
            filename: string,
            item: string
            info: {}
        }
        returns {
            item: id,
        }
    '''
    response = json_response({})
    data = json.loads(request.POST['data'])
    oshash = data.pop('id')
    if not request.user.get_profile().capability('canAddItems'):
        response = json_response(status=403, text='permissino denied')
    elif models.File.objects.filter(oshash=oshash).count() > 0:
        f = models.File.objects.get(oshash=oshash)
        if f.available:
            response['status']['text'] = 'file exists'
        response['data']['item'] = f.item.itemId
        response['data']['itemUrl'] = request.build_absolute_uri('/%s' %
                                                                 f.item.itemId)
    else:
        if 'item' in data:
            i = Item.objects.get(itemId=data['item'])
        else:
            title = ox.parse_movie_path(os.path.splitext(
                data['filename'])[0])['title']
            i = Item()
            i.data = {
                'title': title,
                'director': data.get('director', []),
            }
            i.user = request.user
            i.save()
            i.make_poster(True)
        f = models.File(oshash=oshash, item=i)
        f.path = data.get('filename', 'Untitled')
        extension = f.path.split('.')
        if len(extension) > 1:
            extension = extension[-1]
        else:
            #wafaa
            #extension = 'webm'
            extension = 'png'
        f.selected = True
        if 'info' in data and data['info']:
            f.info = data['info']
        f.info['extension'] = extension
        f.parse_info()
        f.save()
        response['data']['item'] = i.itemId
        response['data']['itemUrl'] = request.build_absolute_uri('/%s' %
                                                                 i.itemId)
    return render_to_json_response(response)
예제 #7
0
    def setUp(self):
        self.title = 'Test title'

        self.user = User(
            name='test', user_name='te-st', email='*****@*****.**', age=20)
        self.user.save()

        self.category = Category(category_name=1)
        self.category.save()

        self.item = Item(title=self.title, user=self.user,
                         category=self.category)
예제 #8
0
    def setUp(self):
        # create user
        self.client = Client(enforce_csrf_checks=False)
        user = User.objects.create_user(
            username="******", email="test", password="******")

        # create Tags
        tag_black = Tag(name="black", user=user)
        tag_black.save()
        tag_white = Tag(name="white", user=user)
        tag_white.save()
        tag_red = Tag(name="red", user=user)
        tag_red.save()
        tag_fancy = Tag(name="fancy", user=user)
        tag_fancy.save()
        tag_verypretty = Tag(name="verypretty", user=user)
        tag_verypretty.save()

        # create Items
        item1 = Item(category="Outer", user=user)
        item1.save()
        item1.tags.add(tag_black, tag_white)
        item2 = Item(category="UpperBody", user=user)
        item2.save()
        item2.tags.add(tag_black, tag_red)
        item3 = Item(category="Accessories", user=user)
        item3.save()
        item3.tags.add(tag_black, tag_fancy)
        item4 = Item(category="verypretty", user=user)
        item4.save()
        item4.tags.add(tag_verypretty)

        # create Outfit
        outfit1 = Outfit(user=user, image_link="", date="2019-11-11",
                         tempAvg=3, tempIcon="happy", satisfaction=5)
        outfit1.save()
        outfit1.items.add(item1, item2, item3, item4)
        outfit1.save()
예제 #9
0
파일: views.py 프로젝트: bogo88/czapla
def add(request, order_id, meal_id):
    order = get_object_or_404(Order, pk=order_id)
    meal = get_object_or_404(Meal, pk=meal_id)
    user = get_object_or_404(User, pk=request.user.id)
    item = Item()
    if not request.user.groups.filter(id=order.group.id):
        messages.warning(request, 'To zamówienie nie należy do Twojej grupy')
        return redirect('profile:index')
    else:
        item.order = order
        item.meal = meal
        item.user = user
        item.save()
        messages.success(request, 'Dodano do listy')
        return HttpResponseRedirect(reverse('order:details', args=[order.id]))
예제 #10
0
def insert_products():
    with open(CSV_PATH_PRODUCTS) as in_file:
        
        data_reader = csv.reader(in_file)
        next(data_reader, None)
        
        for row in data_reader:
            fourth_category = row[2]
            title = row[3]
            description = row[4]
            price = int(row[5].replace(",", ""))
            labels = row[6].replace("[", "").replace("]", "").replace("'", "").split(", ")
            benefits = row[7].replace("[", "").replace("]", "").replace("'", "").split(", ")
            main_image = row[8]
            default_image = row[9]
            hover_image = row[10]

            if fourth_category not in FourthCategory.objects.values_list('name', flat=True):
                FourthCategory.objects.create(name=fourth_category)
            
            images = ItemImage.objects.create(
                main_url = main_image,
                front_url = default_image,
                hover_url = hover_image
            )

            cur_item = Item(
                main_category = MainCategory.objects.get(name="Shop"),
                sub_category = SubCategory.objects.get(name="Tea Shop"),
                third_category = ThirdCategory.objects.get(name=row[1]),
                fourth_category = FourthCategory.objects.get(name=fourth_category),
                title = title,
                description = description,
                price = price,
                images = images
            )
            cur_item.save()
            cur_item.set_benefits(benefits)
            cur_item.save()

            if labels[0] != "":
                for each_label in labels:
                    print(each_label)
                    ItemLabel.objects.create(
                        label = Label.objects.get(name=each_label),
                        item  = cur_item
                     )
예제 #11
0
def add_item(request):
    add_item = True
    msg = None
    if request.method == 'POST':
        image_path = request.FILES.get('img', None)
        item_obj = Item(name=request.POST['name'],
                        description=request.POST['desc'],
                        price=request.POST['price'],
                        item_image=image_path)
        item_obj.save()
        msg = f'Item - "{item_obj.name}" Added Successfully...'
        add_item = False
    items = Item.objects.filter(active='Y')
    return render(request, 'item/welcome.html', {
        'items': items,
        'add': add_item,
        'msg': msg
    })
예제 #12
0
def setup():
    form = SetupForm()
    error = ""
    if form.validate_on_submit():
        author = Author(form.fullname.data, form.email.data,
                        form.username.data, form.password.data, True)
        db.session.add(author)
        db.session.flush()
        if author.id:
            item = Item(form.title.data, author.id)
            db.session.add(item)
            db.session.flush()
        else:
            db.session.rollback()
            error = "Error creating user"
        if author.id and item.id:
            db.session.commit()
            flash('Item created')
            return redirect(url_for('admin'))
        else:
            db.session.rollback()
            error = "Error creating item"
    return render_template('item/setup.html', form=form)
예제 #13
0
def add_item(request):
    if request.method == 'GET':
        last_item_info = Item.objects.last()
        unit_list = Unit.objects.all()
        return render(request, 'item/add_item.html', locals())
    else:
        item_index = request.POST.get('item_index')
        item_chinese_name = request.POST.get('item_chinese_name')
        item_english_name = request.POST.get('item_english_name')
        item_method = request.POST.get('item_method')
        item_unit = request.POST.get('item_unit')
        is_calc = request.POST.get('is_calc')
        is_use = request.POST.get('is_use')

        unit_info = Unit.objects.get(id=item_unit)
        new_item = Item(item_index=int(item_index),
                        item_chinese_name=item_chinese_name,
                        item_english_name=item_english_name,
                        item_method=item_method,
                        item_unit=unit_info,
                        is_calc=str_to_bool(is_calc),
                        is_use=str_to_bool(is_use))
        new_item.save()
        return redirect('/item/item/')
예제 #14
0
 def setup(self):
     self.movie = Movie.objects.create(item=Item(),
                                       runtime=-100,
                                       critic_score=94)
     self.id = Movie.objects.get(runtime=self.movie.runtime).pk
예제 #15
0
def outfit(request):
    user1 = request.user

    if request.method == 'GET':

        response_array = []

        for _outfit in Outfit.objects.filter(user=user1).all():
            weather_dict = {
                "tempAvg": _outfit.tempAvg,
                "icon": _outfit.tempIcon
            }

            items_array = []
            for item in _outfit.items.all():
                item_to_add = {
                    "id": item.id,
                    "category": item.category,
                    "tags": [tag.name for tag in item.tags.all()]
                }
                items_array.append(item_to_add)

            outfit_dict = {
                "id": _outfit.id,
                "image": _outfit.image_link,
                "date": _outfit.dateWithTime,
                "satisfactionValue": _outfit.satisfaction,
                "weather": weather_dict,
                "items": items_array
            }

            response_array.append(outfit_dict)
        return JsonResponse(response_array, safe=False, status=200)

    elif request.method == 'POST':
        try:
            body = request.body.decode()
            request_dict = json.loads(body)

            date = request_dict["date"]
            satisfaction = request_dict["satisfactionValue"]
            tempIcon = request_dict["weather"]["icon"]
            tempAvg = request_dict["weather"]["tempAvg"]
            image = request_dict["image"]
            items = request_dict["items"]

            items_for_new_outfit = []
            for item in items:
                tags_per_item = []
                itemExists = True
                item_candidates = []
                i = 0
                print("tag names array from front: ")
                print(item["tags"])
                for tag_name in item[
                        "tags"]:  # tags=["black", "white", "2019"]
                    try:
                        print("current tag name: ")
                        print(tag_name)
                        tag = Tag.objects.get(name=tag_name)
                        tags_per_item.append(tag)

                        if itemExists:
                            if i is 0:
                                item_candidates = [
                                    item
                                    for item in tag.items_with_this_tag.all()
                                ]
                                print("item_candidates first print: ")
                                print(item_candidates)
                                i = 1

                            else:
                                item_candidates_read = copy.deepcopy(
                                    item_candidates)
                                for item_candidate in item_candidates_read:
                                    print("item_candidate, tag: ")
                                    print(item_candidate, tag.name)
                                    itemExists = tag in item_candidate.tags.all(
                                    )

                                    print("itemExists_in item candidate: ")
                                    print(itemExists)

                                    print(tag.name + ": ")
                                    print(item_candidates)
                                    if not itemExists:
                                        item_candidates.remove(item_candidate)
                                        print(tag.name + "(after remove): ")
                                        print(item_candidates)
                            # 지금 보고있는 tag의 itmes들을 가져온다
                            # 이전에 저장되어 있던 item_candidate와의 교집합을 찾는다 (?)
                            # 교집한 없으면 itemExists 에 false를 넣는다
                    except Tag.DoesNotExist:
                        # check user
                        print("Inside New Tag")
                        itemExists = False
                        item_candidates = []
                        new_tag = Tag(name=tag_name, user=user1)
                        new_tag.save()
                        print("New Tag: ")
                        print(new_tag.name)
                        tags_per_item.append(new_tag)
                # tag 없는 애는 생성, 있는애는 객체로 받아서 받아서 tags안에 다 들어있음
                # itemExists 이미 존재하는 item이 잇는지 확인 끝
                item_candidates = filter(
                    lambda x: x.category == item["category"] and x.tags.all().
                    count() == len(item["tags"]), item_candidates)
                # convert filter object to list
                item_candidates = list(item_candidates)
                print("item_candidates: ")
                print(item_candidates)
                if len(item_candidates) > 1:
                    print("...it is literally disaster")
                    print(item_candidates)

                itemExists = len(item_candidates) == 1

                if itemExists:
                    assert len(item_candidates) == 1, "...inside itemExists"
                    items_for_new_outfit.append(item_candidates[0])
                    print("items_for_new_outfit: ")
                    print(items_for_new_outfit)

                else:
                    new_item = Item(category=item["category"],
                                    user=user1)  # check user
                    new_item.save()
                    for tag in tags_per_item:
                        new_item.tags.add(tag)
                    new_item.save()
                    items_for_new_outfit.append(new_item)
                    # true -> itemCandidates 안에 list item id.
                    # category가 같은 애들 먼저 filter
                    # finally tags length equality check -> itemExtist true? 바로 그 item을 get해와서 item 배열에 넣고 : false면 새로 item생성해서 배열에 넣고

                print("itemExists_received: ")
                print(itemExists)

            new_outfit = Outfit(image_link=image,
                                dateWithTime=date,
                                date=change_date_format(date),
                                satisfaction=satisfaction,
                                tempIcon=tempIcon,
                                tempAvg=tempAvg,
                                user=user1)
            new_outfit.save()

            print("items_for_new_outfit: right before saving outfit: ")
            print(items_for_new_outfit)
            for item in items_for_new_outfit:
                new_outfit.items.add(item)
            new_outfit.save()

            response_dict_weather = {
                "tempAvg": new_outfit.tempAvg,
                "icon": new_outfit.tempIcon
            }
            response_dict_items = []
            for item in new_outfit.items.all():
                item_to_add = {
                    "id": item.id,
                    "category": item.category,
                    "tags": [tag.name for tag in item.tags.all()]
                }
                response_dict_items.append(item_to_add)

            response_dict = {
                "id": new_outfit.id,
                "image": new_outfit.image_link,
                "date": new_outfit.dateWithTime,
                "satisfactionValue": new_outfit.satisfaction,
                "weather": response_dict_weather,
                "items": response_dict_items
            }
            print(response_dict)

            return JsonResponse(response_dict, status=201)

        except (KeyError, JSONDecodeError) as e:
            return HttpResponseBadRequest()

    else:
        return HttpResponseNotAllowed(['GET', 'POST'])
예제 #16
0
def create_item(request):
    try:
        username = request.META.get("HTTP_USERNAME")
        user = User.objects.get(username=username)
        host = Host.objects.get(user=user)
        data = request.data
        valid_address = 0
        if 'address' in data:
            geo_response = geocoding(data['address'])
            if geo_response['status'] == 'OK':
                latitude = geo_response['results'][0]['geometry']['location'][
                    'lat']
                longitude = geo_response['results'][0]['geometry']['location'][
                    'lng']
                valid_address = 1
        item = Item(
            owner=host,
            title=data['title'],
            desc=data['desc'],
            i_type=data['i_type'],
            price_per_day=data['price_per_day'],
            guest_num=data['guest_num'],
            bedroom_num=data['bedroom_num'],
            bed_num=data['bed_num'],
            bathroom_num=data['bathroom_num'],
            address=data['address'],
            rules=data['rules'],
            features=data['features'],
            avaliable=data['avaliable'],
            album='')
        if valid_address:
            item.latitude = latitude
            item.longitude = longitude
        item.save()
        if 'album' in data:
            files = set(data['album'].split(','))
            if item.album == '':
                origin_files = set()
            else:
                origin_files = set(item.album.split(','))
            files_to_add = files - origin_files
            files_to_delete = origin_files - files
            for file in files_to_add:
                new_album = save_image(file, user.u_id, item.i_id)
                if item.album == '':
                    item.album += new_album
                else:
                    item.album += ',' + new_album
            for file in files_to_delete:
                item.album = delete_image(file, item.album, user.u_id,
                                          item.i_id)
            clear_tmp()
        item.album_first = item.album.split(',')[0]
        item.save()
        result = {
            'code': status.HTTP_200_OK,
            'msg': 'creation successful',
            'data': {
                'item_id': item.i_id
            }
        }
    except User.DoesNotExist:
        result = {
            'code': status.HTTP_400_BAD_REQUEST,
            'msg': 'user not found',
        }
    except Host.DoesNotExist:
        result = {
            'code': status.HTTP_400_BAD_REQUEST,
            'msg': 'invalid host',
        }
    except Exception as e:
        result = {
            'code': status.HTTP_400_BAD_REQUEST,
            'msg': str(e),
        }

    return Response(result, status=result['code'])
예제 #17
0
 def create(self, validated_data):
     items = [Item(**item) for item in validated_data]
     return Item.objects.create(items)
예제 #18
0
def specificOutfit(request, outfit_id):
    user1 = request.user

    try:
        outfit = Outfit.objects.get(pk=outfit_id)
    except Outfit.DoesNotExist:
        return HttpResponse(status=404)
    if request.method == 'GET':
        response_dict_weather = {
            "tempAvg": outfit.tempAvg,
            "icon": outfit.tempIcon
        }
        response_dict_items = []
        for item in outfit.items.all():
            item_to_add = {
                "id": item.id,
                "category": item.category,
                "tags": [tag.name for tag in item.tags.all()]
            }
            response_dict_items.append(item_to_add)

        response_dict = {
            "id": outfit.id,
            "image": outfit.image_link,
            "date": outfit.dateWithTime,
            "satisfactionValue": outfit.satisfaction,
            "weather": response_dict_weather,
            "items": response_dict_items
        }

        return JsonResponse(response_dict, status=200)
    elif request.method == 'DELETE':
        for item in outfit.items.all():
            # print("item list in this outfit : "+list(outfit.items))
            if item.outfits_having_this_item.all().count() == 1:
                for tag in item.tags.all():
                    if tag.items_with_this_tag.all().count == 1:
                        tag.delete()
                item.delete()
        # if item.outfits_having_this_item 의 length가 1이면. item도 지워줘
        # if tag.items_with_this_tag의 length가 1이면 tag도 지워줘
        outfit.delete()
        return HttpResponse(status=200)

    else:  # PUT
        try:
            body = request.body.decode()
            # body로 들어온 outfit의 dict형태가 response_dict에 들어있음
            request_dict = json.loads(body)
            date = request_dict["date"]
            satisfaction = request_dict["satisfactionValue"]
            tempIcon = request_dict["weather"]["icon"]
            tempAvg = request_dict["weather"]["tempAvg"]
            # image는 edit page에서 애초에 바꿀 수 없으므로 image관련된 put작업은 생략
            items = request_dict["items"]
            #items_in_current_outfit = outfit.items.all()
            items_for_edited_outfit = []
            for item in items:
                tags_per_item = []
                itemExists = True
                item_candidates = []
                i = 0
                for tag_name in item["tags"]:
                    try:
                        tag = Tag.objects.get(name=tag_name)
                        tags_per_item.append(tag)  #이미 존재하는 태그라면 바로 넣어준다
                        if itemExists:
                            if i is 0:  #현재 아이템의 첫번째 태그를 보고 있다면 여기로 들어온다 -  itemExists가 당연 true 였을 것이다.
                                item_candidates = [
                                    item
                                    for item in tag.items_with_this_tag.all()
                                ]  #현재 보고있는 태그가 포함된 모든 item이 후보가 될 수 있으므로 다 넣어준다
                                i = 1  #두번째 태그 볼때부터는 여기에 못들어오도록 i 값 update
                            else:  #현재 아이템의 첫번째 태그를 보고 있는게 아니라면
                                item_candidates_read = copy.deepcopy(
                                    item_candidates
                                )  #원래의 item_cadidates를 해치지 않기 위해 값만 복사한 read용 array만든다 for문의 이상한 특징을 방어하기 위해 만듬.
                                for item_candidate in item_candidates_read:
                                    itemExists = tag in item_candidate.tags.all(
                                    )  #지금 보고 있는 태그가 itemCandidate 안에 들어있는 지 확인
                                    if not itemExists:  #현재 보고 있는 item candidate에 지금 보고 있는 tag가 없다는게 발각되면.. 그 아이템을 후보에서 지워준다
                                        item_candidates.remove(item_candidate)

                    except Tag.DoesNotExist:  #없는 태그라면
                        itemExists = False
                        item_candidates = []  #후보 item candidate 다 비워준다
                        new_tag = Tag(name=tag_name, user=user1)  #새로운 태그를 생성하고
                        new_tag.save()  #태그를 저장해준다
                        tags_per_item.append(
                            new_tag)  #그리고 그 태그를 아이템에 들어가있는 태그 리스트에 추가해준다
        # 현재 넘어온 outfit 객체의 생김새
        # id 가 outfit id인 애를 찾았잖아 우선?
                item_candidates = filter(
                    lambda x: x.category == item["category"] and x.tags.all(
                    ).count() == len(item["tags"]), item_candidates
                )  #item candidate에 들어있는 애들 중에 category도 같고, tag 개수도 같은 애들만 filtering
                item_candidates = list(item_candidates)
                assert len(item_candidates) <= 1, "...it is literally disaster"

                itemExists = len(item_candidates) == 1

                if itemExists:
                    assert len(item_candidates) == 1, "...inside itemExists"
                    items_for_edited_outfit.append(
                        item_candidates[0])  #이미 있는 item임을 확인했으니 그냥 그 친구를 넣어준다
                    #item을 포함하고 있는 outfit이 1개이고, item_candidate[0]의 id가 지금보고있는 item의 id가 다르면 지금 item을 지우자

                else:
                    new_item = Item(category=item["category"], user=user1)
                    new_item.save()
                    for tag in tags_per_item:
                        new_item.tags.add(tag)
                    new_item.save()
                    items_for_edited_outfit.append(new_item)
                    #item을 포함하고 있는 outfit이 1개였다면 바로 지운다.

            outfit.dateWithTime = date
            outfit.date = change_date_format(date)
            outfit.satisfaction = satisfaction
            outfit.tempIcon = tempIcon
            outfit.tempAvg = tempAvg
            for prev_item in outfit.items.all():
                if prev_item in items_for_edited_outfit:
                    pass
                else:
                    if prev_item.outfits_having_this_item.all().count() == 1:
                        for prev_tag in prev_item.tags.all():
                            if prev_tag.items_with_this_tag.all().count() == 1:
                                prev_tag.delete()
                        prev_item.delete()

                #만약에 prev_item이 items_for_edited_outfit 에 들어있지 않고,
                # prev_item.outfits_having_this_item의 길이가  1이라면
                #for prev_tag in prev_item.tags.all()
                #if prev_tag.items_with_this_tag.all().count == 1
                #prev_tag.delete()
                #    prev_item.delete()
                #'''
            outfit.items.clear()  #기존에 있던 모든 item관게를 끊어준다

            for item in items_for_edited_outfit:
                outfit.items.add(item)
            outfit.save()

            response_dict_weather = {
                "tempAvg": outfit.tempAvg,
                "icon": outfit.tempIcon
            }

            response_dict_items = []
            for item in outfit.items.all():
                item_to_add = {
                    "id": outfit.id,
                    "category": item.category,
                    "tags": [tag.name for tag in item.tags.all()]
                }
                response_dict_items.append(item_to_add)
            response_dict = {
                "id": outfit.id,
                "image": outfit.image_link,
                "date": outfit.dateWithTime,
                "satisfactionValue": outfit.satisfaction,
                "weather": response_dict_weather,
                "items": response_dict_items
            }
            return JsonResponse(response_dict, status=200)
        except (KeyError, JSONDecodeError) as e:
            print(e)
            return HttpResponseBadRequest()
예제 #19
0
import django
import os

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'pj.settings')
django.setup()

from item.models import Item
item = Item(name='coke', price=120)
item.save()