Ejemplo n.º 1
0
def create(request):
    if request.method == 'POST':
        form = RestaurantForm(request.POST)
        if form.is_valid:
            new_item = form.save()
        return HttpResponseRedirect('/third/list/')
    form = RestaurantForm()
    return render(request, 'third/create.html', {'form': form})
Ejemplo n.º 2
0
def update(request):
    #POST로 진입 되었는데, id가 실제 있는것인지 확인
    if request.method == 'POST' and 'id' in request.POST:
        #POST이면 데이터 수정 Restaurant = models
        #요청해서 들어온 해당 값을 불러옴
        item = get_object_or_404(Restaurant, pk=request.POST.get('id')) #page 없음 화면
        #데이터가 없다면 빈 string이 전달
        password = request.POST.get("password","")
        #request.POST를 이용해서 instance를 초기화,
        # RestaurantForm에 수정을 원하는 실제 변경 값을 넣어줌
        # item은 실제 데이터 값 update 하도록 해줌 -> 없으면 create됨
        #updateRestaruantForm으로 수정, Update용이기 때문에
        form = UpdateRestaurantForm(request.POST, instance=item)
        #password가 일치하면, 수정 저장
        if form.is_valid() and password == item.password :
            item = form.save()
    elif request.method == 'GET':
        #GET이면 query parameter로 data가 들어온다는 가정하에 진행
        # item = Restaurant.objects.get(pk=request.GET.get('id')) ##third/update?id=2
        item = get_object_or_404(Restaurant, pk=request.GET.get('id'))
        #RestaurantForm으로 GET한 아이디값으로 지정,
        form = RestaurantForm(instance=item)
        #update화면으로 보냄, create랑 동일
        return render(request,'third/update.html',{'form': form})
    #일반적인 POST는 Redirect를 통해 list화면으로 보냄
    #id 값이 없으면 list 화면으로 돌아감
    return HttpResponseRedirect('/third/list/')
Ejemplo n.º 3
0
def update(request):
    if request.method == 'POST' and 'id' in request.POST:
        item = get_object_or_404(Restaurant, pk=request.POST.get('id'))
        password = request.POST.get('password', '')
        form = UpdateRestaurantForm(request.POST, instance=item)
        if form.is_valid() and password == item.password:
            item = form.save()
    elif request.method == 'GET':
        item = get_object_or_404(Restaurant, pk=request.GET.get('id'))
        form = RestaurantForm(instance=item)
        return render(request, 'third/update.html', {'form': form})
    return HttpResponseRedirect('/third/list/')
Ejemplo n.º 4
0
def create(request):
    if request.method == 'POST':
        form = RestaurantForm(
            request.POST)  # request의 POST 데이터들을 바로 PostForm에 담을 수 있습니다.
        if form.is_valid(
        ):  # 데이터가 form 클래스에서 정의한 조건 (max_length 등)을 만족하는지 체크합니다.
            new_item = form.save()  # save 메소드로 입력받은 데이터를 레코드로 추가합니다.
        return HttpResponseRedirect('/third/list/')  # 리스트 화면으로 이동합니다.
    form = RestaurantForm()  # 만약에 POST방식이 아니라면
    return render(request, 'third/create.html', {'form': form})
Ejemplo n.º 5
0
def update(request):
    # 비밀번호를 새로 입력받는 것이 아니라 기존 비밀번호와 일치하는지 검증해야 하므로 약간의 수정이 필요
    if request.method == 'POST' and 'id' in request.POST:
        item = get_object_or_404(Restaurand, pk=request.POST.get('id'))
        password = request.POST.get("password", "")
        form = UpdateRestaurantForm(
            request.POST, instance=item)  # NOTE: instance 인자(수정대상) 지정
        if form.is_valid() and password == item.password:  # 비밀번호 검증 추가
            item = form.save()
    elif 'id' in request.GET:
        item = get_object_or_404(Restaurand, pk=request.GET.get('id'))
        form = RestaurantForm(instance=item)
        form.password = ''  # password 데이터를 비웁니다.
        return render(request, 'third/update.html', {'form': form})

    return HttpResponseRedirect('/third/list/')  # 리스트 화면으로 이동합니다.
Ejemplo n.º 6
0
def update(request):
    # request 에 id 파라미터가 있도록
    if request.method == 'POST' and 'id' in request.POST:
        # DB 에서 불러온 기존 데이터를 업데이트
        # item = Restaurant.objects.get(pk=request.POST.get('id'))
        item = get_object_or_404(Restaurant, pk=request.POST.get('id'))
        password = request.POST.get('password', '')
        form = UpdateRestaurantForm(request.POST, instance=item)
        if form.is_valid() and password == item.password:
            item = item.save()
    # 뷰 뿌리기
    elif request.method == "GET":
        # item = Restaurant.objects.get(pk=request.GET.get('id'))
        item = get_object_or_404(Restaurant, pk=request.GET.get('id'))
        form = RestaurantForm(instance=item)
        return render(request, 'third/update.html', {'form': form})

    return HttpResponseRedirect('/third/select/')
Ejemplo n.º 7
0
def update(request, id):
    if id is not None:
        if request.method == 'POST' and 'id' in request.POST:
            item = get_object_or_404(Restaurant, pk=id) # id에 해당하는 모델 데이터 가져오기
            password = request.POST.get('password','') # 사용자 입력 패스워드 값
            form = updateRestaurantForm(request.POST, instance=item) # 입력할 폼
            if form.is_valid() and password == item.password:
                item = form.save()
        elif request.method =='GET':
            item = get_object_or_404(Restaurant, pk=id)
            form = RestaurantForm(instance=item)
            context = {
                'form':form,
                'id':item.id
            }
            return render(request, 'third/update.html', context)
        return HttpResponseRedirect('/third/list/')
    return HttpResponseRedirect('/third/list/')
Ejemplo n.º 8
0
def update(request):
    if request.method == 'POST' and 'id' in request.POST:
        # item = Restaurant.objects.get(pk=request.POST.get('id'))
        item = get_object_or_404(Restaurant, pk=request.POST.get('id'))
        form = RestaurantForm(request.POST, instance=item)
        if form.is_valid():
            item = form.save()
    elif request.method == 'GET':
        # item = Restaurant.objects.get(pk=request.GET.get('id'))  ## third/update?id=2
        item = get_object_or_404(Restaurant, pk=request.GET.get('id'))
        form = RestaurantForm(instance=item)
        return render(request, 'third/update.html', {'form': form})
    return HttpResponseRedirect('/third/list/')