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})
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/')
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/')
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})
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/') # 리스트 화면으로 이동합니다.
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/')
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/')
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/')